Coverage Report

Created: 2024-10-28 19:33

/src/scnlib/include/scn/scan.h
Line
Count
Source (jump to first uncovered line)
1
// Copyright 2017 Elias Kosunen
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//     https://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
//
15
// This file is a part of scnlib:
16
//     https://github.com/eliaskosunen/scnlib
17
18
#pragma once
19
20
// Includes <cassert>, <cstddef>, <cstdint>, and <type_traits>
21
#include <scn/fwd.h>
22
23
#include <array>
24
#include <cstdio>
25
#include <cstring>
26
#include <iterator>
27
#include <limits>
28
#include <optional>
29
#include <string>
30
#include <string_view>
31
#include <system_error>
32
#include <tuple>
33
34
namespace scn {
35
SCN_BEGIN_NAMESPACE
36
37
/////////////////////////////////////////////////////////////////
38
// Metaprogramming facilities
39
/////////////////////////////////////////////////////////////////
40
41
namespace detail {
42
43
template <typename T>
44
using integer_type_for_char =
45
    std::conditional_t<std::is_signed_v<T>, int, unsigned>;
46
47
template <typename T, template <typename...> class Templ>
48
struct is_specialization_of_impl : std::false_type {};
49
template <typename... T, template <typename...> class Templ>
50
struct is_specialization_of_impl<Templ<T...>, Templ> : std::true_type {};
51
52
template <typename T, template <typename...> class Templ>
53
using is_specialization_of =
54
    is_specialization_of_impl<remove_cvref_t<T>, Templ>;
55
template <typename T, template <typename...> class Templ>
56
inline constexpr bool is_specialization_of_v =
57
    is_specialization_of<T, Templ>::value;
58
59
// from mp11:
60
61
template <typename T>
62
struct mp_identity {
63
    using type = T;
64
};
65
template <typename T>
66
using mp_identity_t = typename mp_identity<T>::type;
67
68
template <bool B>
69
using mp_bool = std::integral_constant<bool, B>;
70
template <typename T>
71
using mp_to_bool = mp_bool<static_cast<bool>(T::value)>;
72
template <typename T>
73
using mp_not = mp_bool<!T::value>;
74
75
template <bool C, typename T, typename... E>
76
struct mp_if_c_impl;
77
template <typename T, typename... E>
78
struct mp_if_c_impl<true, T, E...> {
79
    using type = T;
80
};
81
template <typename T, typename E>
82
struct mp_if_c_impl<false, T, E> {
83
    using type = E;
84
};
85
86
template <bool C, typename T, typename... E>
87
using mp_if_c = typename mp_if_c_impl<C, T, E...>::type;
88
template <typename C, typename T, typename... E>
89
using mp_if = typename mp_if_c_impl<static_cast<bool>(C::value), T, E...>::type;
90
91
template <template <typename...> class F, typename... T>
92
struct mp_valid_impl {
93
    template <template <typename...> class G, typename = G<T...>>
94
    static std::true_type check(int);
95
    template <template <typename...> class>
96
    static std::false_type check(...);
97
98
    using type = decltype(check<F>(0));
99
};
100
101
template <template <typename...> class F, typename... T>
102
using mp_valid = typename mp_valid_impl<F, T...>::type;
103
template <template <typename...> class F, typename... T>
104
inline constexpr bool mp_valid_v = mp_valid<F, T...>::value;
105
106
struct mp_nonesuch {};
107
template <template <typename...> class F, typename... T>
108
struct mp_defer_impl {
109
    using type = F<T...>;
110
};
111
112
template <template <typename...> class F, typename... T>
113
using mp_defer = mp_if<mp_valid<F, T...>, mp_defer_impl<F, T...>, mp_nonesuch>;
114
115
template <bool C, class T, template <class...> class F, class... U>
116
struct mp_eval_if_c_impl;
117
118
template <class T, template <class...> class F, class... U>
119
struct mp_eval_if_c_impl<true, T, F, U...> {
120
    using type = T;
121
};
122
123
template <class T, template <class...> class F, class... U>
124
struct mp_eval_if_c_impl<false, T, F, U...> : mp_defer<F, U...> {};
125
126
template <bool C, class T, template <class...> class F, class... U>
127
using mp_eval_if_c = typename mp_eval_if_c_impl<C, T, F, U...>::type;
128
template <class C, class T, template <class...> class F, class... U>
129
using mp_eval_if =
130
    typename mp_eval_if_c_impl<static_cast<bool>(C::value), T, F, U...>::type;
131
template <class C, class T, class Q, class... U>
132
using mp_eval_if_q = typename mp_eval_if_c_impl<static_cast<bool>(C::value),
133
                                                T,
134
                                                Q::template fn,
135
                                                U...>::type;
136
137
// mp_eval_if_not
138
template <class C, class T, template <class...> class F, class... U>
139
using mp_eval_if_not = mp_eval_if<mp_not<C>, T, F, U...>;
140
template <class C, class T, class Q, class... U>
141
using mp_eval_if_not_q = mp_eval_if<mp_not<C>, T, Q::template fn, U...>;
142
143
// mp_eval_or
144
template <class T, template <class...> class F, class... U>
145
using mp_eval_or = mp_eval_if_not<mp_valid<F, U...>, T, F, U...>;
146
template <class T, class Q, class... U>
147
using mp_eval_or_q = mp_eval_or<T, Q::template fn, U...>;
148
149
// mp_valid_and_true
150
template <template <class...> class F, class... T>
151
using mp_valid_and_true = mp_eval_or<std::false_type, F, T...>;
152
template <class Q, class... T>
153
using mp_valid_and_true_q = mp_valid_and_true<Q::template fn, T...>;
154
155
// extension
156
template <template <typename...> class F, typename... T>
157
using mp_valid_result =
158
    mp_if<mp_valid<F, T...>, mp_defer_impl<F, T...>, mp_identity<void>>;
159
template <template <typename...> class F, typename... T>
160
using mp_valid_result_t = typename mp_valid_result<F, T...>::type;
161
162
/////////////////////////////////////////////////////////////////
163
// pointer_traits and to_address
164
/////////////////////////////////////////////////////////////////
165
166
template <typename Ptr, typename>
167
struct pointer_traits {};
168
169
template <typename T>
170
struct pointer_traits<T*, void> {
171
    using pointer = T*;
172
    using element_type = T;
173
    using difference_type = std::ptrdiff_t;
174
175
    template <typename U>
176
    using rebind = U*;
177
178
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
179
    static constexpr pointer pointer_to(U& r) noexcept
180
    {
181
        return &r;
182
    }
183
184
    SCN_FORCE_INLINE static constexpr pointer to_address(pointer p) noexcept
185
    {
186
        return p;
187
    }
188
};
189
190
template <typename Ptr>
191
using apply_member_difference_type = typename Ptr::difference_type;
192
template <typename Ptr>
193
using get_member_difference_type =
194
    mp_eval_or<std::ptrdiff_t, apply_member_difference_type, Ptr>;
195
196
template <typename Ptr, typename ElementType>
197
struct pointer_traits_generic_base {
198
    using pointer = Ptr;
199
    using element_type = ElementType;
200
201
    using difference_type = get_member_difference_type<Ptr>;
202
    static_assert(std::is_integral_v<difference_type>);
203
204
    // no rebind (TODO?)
205
206
    template <typename P = Ptr>
207
    static auto pointer_to(ElementType& r) -> decltype(P::pointer_to(r))
208
    {
209
        return Ptr::pointer_to(r);
210
    }
211
};
212
213
template <typename It, typename = void>
214
struct wrapped_pointer_iterator;
215
216
#ifdef _GLIBCXX_DEBUG
217
template <typename Elem, typename Container>
218
struct wrapped_pointer_iterator<__gnu_debug::_Safe_iterator<Elem*, Container>> {
219
    SCN_FORCE_INLINE static constexpr auto to_address(
220
        const __gnu_debug::_Safe_iterator<Elem*, Container>& it) noexcept
221
    {
222
        return it.base();
223
    }
224
};
225
#endif
226
#if SCN_STDLIB_GLIBCXX
227
template <typename Elem, typename Container>
228
struct wrapped_pointer_iterator<
229
    __gnu_cxx::__normal_iterator<Elem*, Container>> {
230
    SCN_FORCE_INLINE static constexpr auto to_address(
231
        const __gnu_cxx::__normal_iterator<Elem*, Container>& it) noexcept
232
    {
233
        return it.base();
234
    }
235
};
236
#endif
237
#if SCN_STDLIB_LIBCPP
238
template <typename Elem>
239
struct wrapped_pointer_iterator<std::__wrap_iter<Elem*>> {
240
    SCN_FORCE_INLINE static constexpr auto to_address(
241
        const std::__wrap_iter<Elem*>& it) noexcept
242
0
    {
243
0
        return it.base();
244
0
    }
245
};
246
#endif
247
248
template <typename I>
249
using apply_deref = decltype(*SCN_DECLVAL(I&));
250
template <typename I>
251
using apply_incr = decltype(++SCN_DECLVAL(I&));
252
template <typename I>
253
using apply_member_unwrapped = decltype(SCN_DECLVAL(I&)._Unwrapped());
254
template <typename It>
255
struct wrapped_pointer_iterator<
256
    It,
257
    std::enable_if_t<mp_valid_v<apply_deref, It> &&
258
                     mp_valid_v<apply_incr, It> &&
259
                     mp_valid_v<apply_member_unwrapped, It>>> {
260
    SCN_FORCE_INLINE static constexpr auto to_address(const It& it) noexcept
261
    {
262
        return it._Unwrapped();
263
    }
264
};
265
266
template <typename I>
267
using apply_member_to_address =
268
    decltype(wrapped_pointer_iterator<I>::to_address(SCN_DECLVAL(const I&)));
269
270
template <typename Iterator>
271
struct pointer_traits<
272
    Iterator,
273
    std::enable_if_t<mp_valid_v<apply_member_to_address, Iterator>>>
274
    : pointer_traits_generic_base<
275
          Iterator,
276
          std::remove_reference_t<decltype(*SCN_DECLVAL(Iterator&))>> {
277
    SCN_FORCE_INLINE static constexpr auto to_address(
278
        const Iterator& it) noexcept
279
0
    {
280
0
        return wrapped_pointer_iterator<Iterator>::to_address(it);
281
0
    }
282
};
283
284
template <typename It>
285
using apply_ptr_traits_to_address =
286
    decltype(pointer_traits<It>::to_address(SCN_DECLVAL(const It&)));
287
template <typename It>
288
inline constexpr bool can_make_address_from_iterator =
289
    std::is_pointer_v<mp_valid_result_t<apply_ptr_traits_to_address, It>>;
290
291
template <typename T>
292
SCN_FORCE_INLINE constexpr T* to_address_impl(T* p, priority_tag<2>) noexcept
293
619M
{
294
619M
    return p;
295
619M
}
char const* scn::v4::detail::to_address_impl<char const>(char const*, scn::v4::detail::priority_tag<2ul>)
Line
Count
Source
293
34.6M
{
294
34.6M
    return p;
295
34.6M
}
wchar_t const* scn::v4::detail::to_address_impl<wchar_t const>(wchar_t const*, scn::v4::detail::priority_tag<2ul>)
Line
Count
Source
293
585M
{
294
585M
    return p;
295
585M
}
296
template <typename Ptr>
297
SCN_FORCE_INLINE constexpr auto to_address_impl(const Ptr& p,
298
                                                priority_tag<1>) noexcept
299
    -> decltype(::scn::detail::pointer_traits<Ptr>::to_address(p))
300
{
301
    return ::scn::detail::pointer_traits<Ptr>::to_address(p);
302
}
303
template <typename Ptr>
304
SCN_FORCE_INLINE constexpr auto to_address_impl(const Ptr& p,
305
                                                priority_tag<0>) noexcept
306
    -> decltype(::scn::detail::to_address_impl(p.operator->(),
307
                                               priority_tag<2>{}))
308
{
309
    return ::scn::detail::to_address_impl(p.operator->(), priority_tag<2>{});
310
}
311
312
template <typename Ptr>
313
SCN_FORCE_INLINE constexpr auto to_address(Ptr&& p) noexcept
314
    -> decltype(::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{}))
315
619M
{
316
619M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
317
619M
}
_ZN3scn2v46detail10to_addressIRPKcEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
315
31.2M
{
316
31.2M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
317
31.2M
}
_ZN3scn2v46detail10to_addressIPKcEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
315
3.44M
{
316
3.44M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
317
3.44M
}
_ZN3scn2v46detail10to_addressIPKwEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
315
23.6M
{
316
23.6M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
317
23.6M
}
_ZN3scn2v46detail10to_addressIRPKwEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
315
561M
{
316
561M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
317
561M
}
318
319
}  // namespace detail
320
321
/////////////////////////////////////////////////////////////////
322
// <expected> implementation
323
/////////////////////////////////////////////////////////////////
324
325
// The following implementation of expected is based on TartanLlama/expected,
326
// but is heavily modified.
327
//
328
// The original source is here:
329
//     https://github.com/TartanLlama/expected
330
// which is licensed under CC0 (Public Domain).
331
332
/**
333
 * \see `std::unexpected`
334
 */
335
template <typename E>
336
class SCN_TRIVIAL_ABI unexpected {
337
    static_assert(std::is_destructible_v<E>);
338
339
public:
340
    unexpected() = delete;
341
342
    template <
343
        typename Err = E,
344
        typename = std::enable_if_t<!std::is_same_v<Err, unexpected> &&
345
                                    !std::is_same_v<Err, std::in_place_t> &&
346
                                    std::is_constructible_v<E, Err>>>
347
    explicit constexpr unexpected(Err&& e) noexcept(
348
        std::is_nothrow_constructible_v<E, Err>)
349
1.50M
        : m_unexpected(std::forward<Err>(e))
350
1.52M
    {
351
1.52M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
352
1.52M
    }
scn::v4::unexpected<scn::v4::scan_error>::unexpected<scn::v4::scan_error&, void>(scn::v4::scan_error&)
Line
Count
Source
349
1.16M
        : m_unexpected(std::forward<Err>(e))
350
1.16M
    {
351
1.16M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
352
1.16M
    }
scn::v4::unexpected<scn::v4::scan_error>::unexpected<scn::v4::scan_error, void>(scn::v4::scan_error&&)
Line
Count
Source
349
338k
        : m_unexpected(std::forward<Err>(e))
350
338k
    {
351
338k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
352
338k
    }
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error>::unexpected<scn::v4::impl::parse_error, void>(scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error>::unexpected<scn::v4::impl::parse_error&, void>(scn::v4::impl::parse_error&)
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::eof_error>::unexpected<scn::v4::impl::eof_error, void>(scn::v4::impl::eof_error&&)
scn::v4::unexpected<scn::v4::impl::eof_error>::unexpected<scn::v4::impl::eof_error&, void>(scn::v4::impl::eof_error&)
Line
Count
Source
349
26.8k
        : m_unexpected(std::forward<Err>(e))
350
26.8k
    {
351
26.8k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
352
26.8k
    }
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error::code>::unexpected<scn::v4::impl::parse_error::code, void>(scn::v4::impl::parse_error::code&&)
353
354
    template <typename... Args,
355
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
356
    explicit constexpr unexpected(std::in_place_t, Args&&... args) noexcept(
357
        std::is_nothrow_constructible_v<E, Args...>)
358
1.52M
        : m_unexpected(std::forward<Args>(args)...)
359
1.55M
    {
360
1.55M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
361
1.55M
    }
scn::v4::unexpected<scn::v4::scan_error>::unexpected<scn::v4::scan_error, void>(std::__1::in_place_t, scn::v4::scan_error&&)
Line
Count
Source
358
1.52M
        : m_unexpected(std::forward<Args>(args)...)
359
1.52M
    {
360
1.52M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
361
1.52M
    }
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error>::unexpected<scn::v4::impl::parse_error, void>(std::__1::in_place_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error>::unexpected<scn::v4::impl::parse_error::code, void>(std::__1::in_place_t, scn::v4::impl::parse_error::code&&)
362
363
    SCN_NODISCARD constexpr E& error() & noexcept
364
2.72M
    {
365
2.72M
        return m_unexpected;
366
2.72M
    }
scn::v4::unexpected<scn::v4::scan_error>::error() &
Line
Count
Source
364
2.66M
    {
365
2.66M
        return m_unexpected;
366
2.66M
    }
scn::v4::unexpected<scn::v4::impl::eof_error>::error() &
Line
Count
Source
364
53.7k
    {
365
53.7k
        return m_unexpected;
366
53.7k
    }
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error::code>::error() &
367
    SCN_NODISCARD constexpr const E& error() const& noexcept
368
0
    {
369
0
        return m_unexpected;
370
0
    }
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error>::error() const &
371
372
    SCN_NODISCARD constexpr E&& error() && noexcept
373
    {
374
        return std::move(m_unexpected);
375
    }
376
    SCN_NODISCARD constexpr const E&& error() const&& noexcept
377
    {
378
        return std::move(m_unexpected);
379
    }
380
381
private:
382
    E m_unexpected;
383
};
384
385
template <typename E>
386
unexpected(E) -> unexpected<E>;
387
388
struct unexpect_t {};
389
inline constexpr unexpect_t unexpect{};
390
391
namespace detail {
392
template <typename T, typename... Args>
393
T* construct_at(T* p, Args&&... args) noexcept(
394
    std::is_nothrow_constructible_v<T, Args...>)
395
7.36M
{
396
7.36M
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
397
7.36M
        T(std::forward<Args>(args)...);
398
7.36M
}
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
395
298k
{
396
298k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
397
298k
        T(std::forward<Args>(args)...);
398
298k
}
scn::v4::unexpected<scn::v4::scan_error>* scn::v4::detail::construct_at<scn::v4::unexpected<scn::v4::scan_error>, std::__1::in_place_t const&, scn::v4::scan_error>(scn::v4::unexpected<scn::v4::scan_error>*, std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
395
186k
{
396
186k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
397
186k
        T(std::forward<Args>(args)...);
398
186k
}
scn::v4::unexpected<scn::v4::scan_error>* scn::v4::detail::construct_at<scn::v4::unexpected<scn::v4::scan_error>, scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>*, scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
395
279k
{
396
279k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
397
279k
        T(std::forward<Args>(args)...);
398
279k
}
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
395
357k
{
396
357k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
397
357k
        T(std::forward<Args>(args)...);
398
357k
}
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
395
3.12M
{
396
3.12M
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
397
3.12M
        T(std::forward<Args>(args)...);
398
3.12M
}
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
395
3.12M
{
396
3.12M
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
397
3.12M
        T(std::forward<Args>(args)...);
398
3.12M
}
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
399
template <typename T>
400
void destroy_at(T* p) noexcept
401
7.27M
{
402
    if constexpr (std::is_array_v<T>) {
403
        for (auto& elem : *p) {
404
            scn::detail::destroy_at(&elem);
405
        }
406
    }
407
7.27M
    else {
408
7.27M
        p->~T();
409
7.27M
    }
410
7.27M
}
void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
401
298k
{
402
    if constexpr (std::is_array_v<T>) {
403
        for (auto& elem : *p) {
404
            scn::detail::destroy_at(&elem);
405
        }
406
    }
407
298k
    else {
408
298k
        p->~T();
409
298k
    }
410
298k
}
void scn::v4::detail::destroy_at<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>*)
Line
Count
Source
401
372k
{
402
    if constexpr (std::is_array_v<T>) {
403
        for (auto& elem : *p) {
404
            scn::detail::destroy_at(&elem);
405
        }
406
    }
407
372k
    else {
408
372k
        p->~T();
409
372k
    }
410
372k
}
void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
401
357k
{
402
    if constexpr (std::is_array_v<T>) {
403
        for (auto& elem : *p) {
404
            scn::detail::destroy_at(&elem);
405
        }
406
    }
407
357k
    else {
408
357k
        p->~T();
409
357k
    }
410
357k
}
void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
401
3.12M
{
402
    if constexpr (std::is_array_v<T>) {
403
        for (auto& elem : *p) {
404
            scn::detail::destroy_at(&elem);
405
        }
406
    }
407
3.12M
    else {
408
3.12M
        p->~T();
409
3.12M
    }
410
3.12M
}
void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
401
3.12M
{
402
    if constexpr (std::is_array_v<T>) {
403
        for (auto& elem : *p) {
404
            scn::detail::destroy_at(&elem);
405
        }
406
    }
407
3.12M
    else {
408
3.12M
        p->~T();
409
3.12M
    }
410
3.12M
}
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
411
412
struct deferred_init_tag_t {};
413
static constexpr deferred_init_tag_t deferred_init_tag{};
414
415
template <typename T,
416
          typename E,
417
          bool IsTriviallyDestructible =
418
              (std::is_void_v<T> || std::is_trivially_destructible_v<T>)&&std::
419
                  is_trivially_destructible_v<E>>
420
struct expected_storage_base;
421
422
template <typename T, typename E>
423
struct SCN_TRIVIAL_ABI expected_storage_base<T, E, true> {
424
    constexpr expected_storage_base() noexcept(
425
        std::is_nothrow_default_constructible_v<T>)
426
3.41M
        : m_value(T{}), m_has_value(true)
427
3.41M
    {
428
3.41M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::expected_storage_base()
Line
Count
Source
426
298k
        : m_value(T{}), m_has_value(true)
427
298k
    {
428
298k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::expected_storage_base()
Line
Count
Source
426
3.12M
        : m_value(T{}), m_has_value(true)
427
3.12M
    {
428
3.12M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::expected_storage_base()
429
430
    constexpr explicit expected_storage_base(deferred_init_tag_t) noexcept
431
        : m_deferred_init(), m_has_value(false)
432
    {
433
    }
434
435
    template <typename... Args,
436
              typename = std::enable_if_t<std::is_constructible_v<T, Args...>>>
437
    constexpr explicit expected_storage_base(
438
        std::in_place_t,
439
        Args&&... args) noexcept(std::is_nothrow_constructible_v<T, Args...>)
440
62.4M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
62.4M
    {
442
62.4M
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&)
Line
Count
Source
440
535k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
535k
    {
442
535k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&&)
Line
Count
Source
440
326k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
326k
    {
442
326k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
440
6.11M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
6.11M
    {
442
6.11M
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&&)
Line
Count
Source
440
3.05M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
3.05M
    {
442
3.05M
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
440
791k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
791k
    {
442
791k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
440
7.36M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
7.36M
    {
442
7.36M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
440
332k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
332k
    {
442
332k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>&&)
Line
Count
Source
440
271k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
271k
    {
442
271k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<char const*, long>, void>(std::__1::in_place_t, std::__1::pair<char const*, long>&&)
Line
Count
Source
440
447k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
447k
    {
442
447k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<char const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<char const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<char const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<char const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
440
2.10k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
2.10k
    {
442
2.10k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&)
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
440
3.07M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
3.07M
    {
442
3.07M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>&&)
Line
Count
Source
440
2.46M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
2.46M
    {
442
2.46M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<wchar_t const*, long>, void>(std::__1::in_place_t, std::__1::pair<wchar_t const*, long>&&)
Line
Count
Source
440
4.92M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
4.92M
    {
442
4.92M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<wchar_t const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<wchar_t const*>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
440
264
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
264
    {
442
264
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::expected_storage_base<char const*, void>(std::__1::in_place_t, char const*&&)
Line
Count
Source
440
1.29M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
1.29M
    {
442
1.29M
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::expected_storage_base<wchar_t const*, void>(std::__1::in_place_t, wchar_t const*&&)
Line
Count
Source
440
14.7M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
14.7M
    {
442
14.7M
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::expected_storage_base<char const*, void>(std::__1::in_place_t, char const*&&)
Line
Count
Source
440
547k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
547k
    {
442
547k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::expected_storage_base<char const*&, void>(std::__1::in_place_t, char const*&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::expected_storage_base<char const*, void>(std::__1::in_place_t, char const*&&)
scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::expected_storage_base<long, void>(std::__1::in_place_t, long&&)
Line
Count
Source
440
10.0M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
10.0M
    {
442
10.0M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::expected_storage_base<char const*&, void>(std::__1::in_place_t, char const*&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::regex_constants::syntax_option_type, scn::v4::scan_error, true>::expected_storage_base<std::__1::regex_constants::syntax_option_type, void>(std::__1::in_place_t, std::__1::regex_constants::syntax_option_type&&)
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::expected_storage_base<char const* const&, void>(std::__1::in_place_t, char const* const&)
Line
Count
Source
440
4.20k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
4.20k
    {
442
4.20k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::expected_storage_base<wchar_t const*, void>(std::__1::in_place_t, wchar_t const*&&)
Line
Count
Source
440
6.15M
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
6.15M
    {
442
6.15M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::expected_storage_base<wchar_t const*&, void>(std::__1::in_place_t, wchar_t const*&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::expected_storage_base<wchar_t const*, void>(std::__1::in_place_t, wchar_t const*&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::expected_storage_base<wchar_t const*&, void>(std::__1::in_place_t, wchar_t const*&)
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::expected_storage_base<wchar_t const* const&, void>(std::__1::in_place_t, wchar_t const* const&)
Line
Count
Source
440
528
        : m_value(std::forward<Args>(args)...), m_has_value(true)
441
528
    {
442
528
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::expected_storage_base<int, void>(std::__1::in_place_t, int&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t, scn::v4::scan_error, true>::expected_storage_base<wchar_t, void>(std::__1::in_place_t, wchar_t&&)
443
444
    template <typename... Args,
445
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
446
    constexpr explicit expected_storage_base(
447
        unexpect_t,
448
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
449
1.02M
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
1.02M
          m_has_value(false)
451
1.02M
    {
452
1.02M
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
62.0k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
62.0k
          m_has_value(false)
451
62.0k
    {
452
62.0k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
31.0k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
31.0k
          m_has_value(false)
451
31.0k
    {
452
31.0k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
31.0k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
31.0k
          m_has_value(false)
451
31.0k
    {
452
31.0k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
124k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
124k
          m_has_value(false)
451
124k
    {
452
124k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
62.0k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
62.0k
          m_has_value(false)
451
62.0k
    {
452
62.0k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
62.0k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
62.0k
          m_has_value(false)
451
62.0k
    {
452
62.0k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
38.3k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
38.3k
          m_has_value(false)
451
38.3k
    {
452
38.3k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
74.6k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
74.6k
          m_has_value(false)
451
74.6k
    {
452
74.6k
    }
scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
279k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
279k
          m_has_value(false)
451
279k
    {
452
279k
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
75.5k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
75.5k
          m_has_value(false)
451
75.5k
    {
452
75.5k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
149k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
149k
          m_has_value(false)
451
149k
    {
452
149k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Line
Count
Source
449
4.49k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
4.49k
          m_has_value(false)
451
4.49k
    {
452
4.49k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
1.95k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
1.95k
          m_has_value(false)
451
1.95k
    {
452
1.95k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Line
Count
Source
449
6.74k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
6.74k
          m_has_value(false)
451
6.74k
    {
452
6.74k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
2.69k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
2.69k
          m_has_value(false)
451
2.69k
    {
452
2.69k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::regex_constants::syntax_option_type, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Line
Count
Source
449
5.21k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
5.21k
          m_has_value(false)
451
5.21k
    {
452
5.21k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
2.08k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
2.08k
          m_has_value(false)
451
2.08k
    {
452
2.08k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Line
Count
Source
449
10.4k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
10.4k
          m_has_value(false)
451
10.4k
    {
452
10.4k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
449
4.17k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
450
4.17k
          m_has_value(false)
451
4.17k
    {
452
4.17k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
453
454
    constexpr T& get_value() & noexcept
455
75.9M
    {
456
75.9M
        return m_value;
457
75.9M
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
535k
    {
456
535k
        return m_value;
457
535k
    }
scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
13.4M
    {
456
13.4M
        return m_value;
457
13.4M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
833k
    {
456
833k
        return m_value;
457
833k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
326k
    {
456
326k
        return m_value;
457
326k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
6.11M
    {
456
6.11M
        return m_value;
457
6.11M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
9.23M
    {
456
9.23M
        return m_value;
457
9.23M
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
3.05M
    {
456
3.05M
        return m_value;
457
3.05M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::regex_constants::syntax_option_type, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
455
332k
    {
456
332k
        return m_value;
457
332k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
455
3.07M
    {
456
3.07M
        return m_value;
457
3.07M
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
1.30M
    {
456
1.30M
        return m_value;
457
1.30M
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
14.7M
    {
456
14.7M
        return m_value;
457
14.7M
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
455
547k
    {
456
547k
        return m_value;
457
547k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
271k
    {
456
271k
        return m_value;
457
271k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
793k
    {
456
793k
        return m_value;
457
793k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
447k
    {
456
447k
        return m_value;
457
447k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
2.46M
    {
456
2.46M
        return m_value;
457
2.46M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
7.36M
    {
456
7.36M
        return m_value;
457
7.36M
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
455
6.15M
    {
456
6.15M
        return m_value;
457
6.15M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
455
4.92M
    {
456
4.92M
        return m_value;
457
4.92M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_value() &
458
    constexpr const T& get_value() const& noexcept
459
0
    {
460
0
        return m_value;
461
0
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
462
    constexpr T&& get_value() && noexcept
463
0
    {
464
0
        return std::move(m_value);
465
0
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::get_value() &&
466
    constexpr const T&& get_value() const&& noexcept
467
    {
468
        return std::move(m_value);
469
    }
470
471
    constexpr unexpected<E>& get_unexpected() & noexcept
472
1.02M
    {
473
1.02M
        return m_unexpected;
474
1.02M
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
62.0k
    {
473
62.0k
        return m_unexpected;
474
62.0k
    }
scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
279k
    {
473
279k
        return m_unexpected;
474
279k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
31.0k
    {
473
31.0k
        return m_unexpected;
474
31.0k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
31.0k
    {
473
31.0k
        return m_unexpected;
474
31.0k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
124k
    {
473
124k
        return m_unexpected;
474
124k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
62.0k
    {
473
62.0k
        return m_unexpected;
474
62.0k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
62.0k
    {
473
62.0k
        return m_unexpected;
474
62.0k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::regex_constants::syntax_option_type, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
472
4.49k
    {
473
4.49k
        return m_unexpected;
474
4.49k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
472
5.21k
    {
473
5.21k
        return m_unexpected;
474
5.21k
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
75.5k
    {
473
75.5k
        return m_unexpected;
474
75.5k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
149k
    {
473
149k
        return m_unexpected;
474
149k
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
472
6.74k
    {
473
6.74k
        return m_unexpected;
474
6.74k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
1.95k
    {
473
1.95k
        return m_unexpected;
474
1.95k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
38.3k
    {
473
38.3k
        return m_unexpected;
474
38.3k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
2.69k
    {
473
2.69k
        return m_unexpected;
474
2.69k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
2.08k
    {
473
2.08k
        return m_unexpected;
474
2.08k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
74.6k
    {
473
74.6k
        return m_unexpected;
474
74.6k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
472
10.4k
    {
473
10.4k
        return m_unexpected;
474
10.4k
    }
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
472
4.17k
    {
473
4.17k
        return m_unexpected;
474
4.17k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_unexpected() &
475
    constexpr const unexpected<E>& get_unexpected() const& noexcept
476
0
    {
477
0
        return m_unexpected;
478
0
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
479
    constexpr unexpected<E>&& get_unexpected() && noexcept
480
93.0k
    {
481
93.0k
        return std::move(m_unexpected);
482
93.0k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::get_unexpected() &&
Line
Count
Source
480
31.0k
    {
481
31.0k
        return std::move(m_unexpected);
482
31.0k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::get_unexpected() &&
Line
Count
Source
480
62.0k
    {
481
62.0k
        return std::move(m_unexpected);
482
62.0k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::get_unexpected() &&
483
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
484
    {
485
        return std::move(m_unexpected);
486
    }
487
488
    SCN_NODISCARD constexpr bool has_value() const noexcept
489
147M
    {
490
147M
        return m_has_value;
491
147M
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
1.19M
    {
490
1.19M
        return m_has_value;
491
1.19M
    }
scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
27.5M
    {
490
27.5M
        return m_has_value;
491
27.5M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
1.19M
    {
490
1.19M
        return m_has_value;
491
1.19M
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
715k
    {
490
715k
        return m_has_value;
491
715k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
12.4M
    {
490
12.4M
        return m_has_value;
491
12.4M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
12.4M
    {
490
12.4M
        return m_has_value;
491
12.4M
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
6.24M
    {
490
6.24M
        return m_has_value;
491
6.24M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::regex_constants::syntax_option_type, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
489
673k
    {
490
673k
        return m_has_value;
491
673k
    }
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
489
6.16M
    {
490
6.16M
        return m_has_value;
491
6.16M
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
2.75M
    {
490
2.75M
        return m_has_value;
491
2.75M
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
29.7M
    {
490
29.7M
        return m_has_value;
491
29.7M
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
489
1.10M
    {
490
1.10M
        return m_has_value;
491
1.10M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
547k
    {
490
547k
        return m_has_value;
491
547k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
1.66M
    {
490
1.66M
        return m_has_value;
491
1.66M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
900k
    {
490
900k
        return m_has_value;
491
900k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
4.92M
    {
490
4.92M
        return m_has_value;
491
4.92M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
14.8M
    {
490
14.8M
        return m_has_value;
491
14.8M
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
489
12.3M
    {
490
12.3M
        return m_has_value;
491
12.3M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
489
9.85M
    {
490
9.85M
        return m_has_value;
491
9.85M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::has_value() const
492
493
    template <typename... Args>
494
    void construct(Args&&... args) noexcept(
495
        std::is_nothrow_constructible_v<T, Args...>)
496
0
    {
497
0
        scn::detail::construct_at(&get_value(), std::forward<Args>(args)...);
498
0
        m_has_value = true;
499
0
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>&&)
500
    template <typename... Args>
501
    void construct_unexpected(Args&&... args) noexcept(
502
        std::is_nothrow_constructible_v<E, Args...>)
503
93.0k
    {
504
93.0k
        scn::detail::construct_at(&get_unexpected(),
505
93.0k
                                  std::forward<Args>(args)...);
506
93.0k
        m_has_value = false;
507
93.0k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
503
31.0k
    {
504
31.0k
        scn::detail::construct_at(&get_unexpected(),
505
31.0k
                                  std::forward<Args>(args)...);
506
31.0k
        m_has_value = false;
507
31.0k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
503
62.0k
    {
504
62.0k
        scn::detail::construct_at(&get_unexpected(),
505
62.0k
                                  std::forward<Args>(args)...);
506
62.0k
        m_has_value = false;
507
62.0k
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
508
509
    // No-op, because T and E are trivially destructible
510
93.0k
    static constexpr void destroy_value() noexcept {}
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::destroy_value()
Line
Count
Source
510
31.0k
    static constexpr void destroy_value() noexcept {}
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::destroy_value()
Line
Count
Source
510
62.0k
    static constexpr void destroy_value() noexcept {}
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::destroy_value()
511
0
    static constexpr void destroy_unexpected() noexcept {}
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::destroy_unexpected()
512
513
private:
514
    union {
515
        T m_value;
516
        unexpected<E> m_unexpected;
517
        char m_deferred_init;
518
    };
519
    bool m_has_value;
520
};
521
522
template <typename E>
523
struct SCN_TRIVIAL_ABI expected_storage_base<void, E, true> {
524
#if SCN_STD >= SCN_STD_20
525
    constexpr expected_storage_base() noexcept : m_has_value(true) {}
526
#else
527
    constexpr expected_storage_base() noexcept
528
27.6M
        : m_deferred_init(), m_has_value(true)
529
27.6M
    {
530
27.6M
    }
531
#endif
532
533
    explicit constexpr expected_storage_base(deferred_init_tag_t) noexcept
534
        : m_deferred_init(), m_has_value(false)
535
    {
536
    }
537
538
    explicit constexpr expected_storage_base(std::in_place_t) noexcept
539
        : m_has_value(true)
540
    {
541
    }
542
543
    template <typename... Args,
544
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
545
    explicit constexpr expected_storage_base(
546
        unexpect_t,
547
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
548
343k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
549
343k
          m_has_value(false)
550
343k
    {
551
343k
    }
552
553
    constexpr unexpected<E>& get_unexpected() & noexcept
554
257k
    {
555
257k
        return m_unexpected;
556
257k
    }
557
    constexpr const unexpected<E>& get_unexpected() const& noexcept
558
    {
559
        return m_unexpected;
560
    }
561
    constexpr unexpected<E>&& get_unexpected() && noexcept
562
    {
563
        return std::move(m_unexpected);
564
    }
565
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
566
    {
567
        return std::move(m_unexpected);
568
    }
569
570
    SCN_NODISCARD constexpr bool has_value() const noexcept
571
32.1M
    {
572
32.1M
        return m_has_value;
573
32.1M
    }
574
575
    template <typename... Args>
576
    void construct(Args&&...) noexcept
577
    {
578
        m_has_value = true;
579
    }
580
    template <typename... Args>
581
    void construct_unexpected(Args&&... args) noexcept(
582
        std::is_nothrow_constructible_v<E, Args...>)
583
    {
584
        scn::detail::construct_at(&get_unexpected(),
585
                                  std::forward<Args>(args)...);
586
        m_has_value = false;
587
    }
588
589
    static constexpr void destroy_value() noexcept {}
590
    static constexpr void destroy_unexpected() noexcept {}
591
592
private:
593
    union {
594
        unexpected<E> m_unexpected;
595
        char m_deferred_init;
596
    };
597
    bool m_has_value;
598
};
599
600
/**
601
 * Implementation of `std::max` without including `<algorithm>`
602
 */
603
template <typename T>
604
constexpr T max(T a, T b) noexcept
605
0
{
606
0
    return (a < b) ? b : a;
607
0
}
608
609
template <typename T, typename E>
610
struct SCN_TRIVIAL_ABI expected_storage_base<T, E, false> {
611
6.89M
    constexpr expected_storage_base() noexcept : m_has_value(true)
612
6.89M
    {
613
6.89M
        construct();
614
6.89M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base()
Line
Count
Source
611
298k
    constexpr expected_storage_base() noexcept : m_has_value(true)
612
298k
    {
613
298k
        construct();
614
298k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base()
Line
Count
Source
611
357k
    constexpr expected_storage_base() noexcept : m_has_value(true)
612
357k
    {
613
357k
        construct();
614
357k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::expected_storage_base()
Line
Count
Source
611
3.12M
    constexpr expected_storage_base() noexcept : m_has_value(true)
612
3.12M
    {
613
3.12M
        construct();
614
3.12M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::expected_storage_base()
Line
Count
Source
611
3.12M
    constexpr expected_storage_base() noexcept : m_has_value(true)
612
3.12M
    {
613
3.12M
        construct();
614
3.12M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base()
615
616
    explicit constexpr expected_storage_base(deferred_init_tag_t) noexcept
617
        : m_has_value(false)
618
    {
619
    }
620
621
    template <typename... Args,
622
              typename = std::enable_if_t<std::is_constructible_v<T, Args...>>>
623
    explicit constexpr expected_storage_base(
624
        std::in_place_t,
625
        Args&&... args) noexcept(std::is_nothrow_constructible_v<T, Args...>)
626
0
        : m_has_value(true)
627
0
    {
628
0
        construct(std::forward<Args>(args)...);
629
0
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
630
631
    template <typename... Args,
632
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
633
    explicit constexpr expected_storage_base(
634
        unexpect_t,
635
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
636
186k
        : m_has_value(false)
637
186k
    {
638
186k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
639
186k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
636
31.0k
        : m_has_value(false)
637
31.0k
    {
638
31.0k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
639
31.0k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
636
31.0k
        : m_has_value(false)
637
31.0k
    {
638
31.0k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
639
31.0k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
636
62.0k
        : m_has_value(false)
637
62.0k
    {
638
62.0k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
639
62.0k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
636
62.0k
        : m_has_value(false)
637
62.0k
    {
638
62.0k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
639
62.0k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
640
641
    ~expected_storage_base()
642
7.08M
    {
643
7.08M
        if (has_value()) {
644
6.71M
            destroy_value();
645
6.71M
        }
646
372k
        else {
647
372k
            destroy_unexpected();
648
372k
        }
649
7.08M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Line
Count
Source
642
329k
    {
643
329k
        if (has_value()) {
644
267k
            destroy_value();
645
267k
        }
646
62.0k
        else {
647
62.0k
            destroy_unexpected();
648
62.0k
        }
649
329k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Line
Count
Source
642
388k
    {
643
388k
        if (has_value()) {
644
326k
            destroy_value();
645
326k
        }
646
62.0k
        else {
647
62.0k
            destroy_unexpected();
648
62.0k
        }
649
388k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::~expected_storage_base()
Line
Count
Source
642
3.18M
    {
643
3.18M
        if (has_value()) {
644
3.05M
            destroy_value();
645
3.05M
        }
646
124k
        else {
647
124k
            destroy_unexpected();
648
124k
        }
649
3.18M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::~expected_storage_base()
Line
Count
Source
642
3.18M
    {
643
3.18M
        if (has_value()) {
644
3.05M
            destroy_value();
645
3.05M
        }
646
124k
        else {
647
124k
            destroy_unexpected();
648
124k
        }
649
3.18M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
650
651
    constexpr T& get_value() & noexcept
652
20.3M
    {
653
20.3M
        return *value_ptr();
654
20.3M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Line
Count
Source
652
833k
    {
653
833k
        return *value_ptr();
654
833k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Line
Count
Source
652
1.01M
    {
653
1.01M
        return *value_ptr();
654
1.01M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_value() &
Line
Count
Source
652
9.23M
    {
653
9.23M
        return *value_ptr();
654
9.23M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_value() &
Line
Count
Source
652
9.23M
    {
653
9.23M
        return *value_ptr();
654
9.23M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
655
    constexpr const T& get_value() const& noexcept
656
    {
657
        return *value_ptr();
658
    }
659
    constexpr T&& get_value() && noexcept
660
0
    {
661
0
        return std::move(*value_ptr());
662
0
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &&
663
    constexpr const T&& get_value() const&& noexcept
664
    {
665
        return std::move(*value_ptr());
666
    }
667
668
    constexpr unexpected<E>& get_unexpected() & noexcept
669
0
    {
670
0
        return *unexpected_ptr();
671
0
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
672
    constexpr const unexpected<E>& get_unexpected() const& noexcept
673
    {
674
        return *unexpected_ptr();
675
    }
676
    constexpr unexpected<E>&& get_unexpected() && noexcept
677
186k
    {
678
186k
        return std::move(*unexpected_ptr());
679
186k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &&
Line
Count
Source
677
31.0k
    {
678
31.0k
        return std::move(*unexpected_ptr());
679
31.0k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &&
Line
Count
Source
677
31.0k
    {
678
31.0k
        return std::move(*unexpected_ptr());
679
31.0k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_unexpected() &&
Line
Count
Source
677
62.0k
    {
678
62.0k
        return std::move(*unexpected_ptr());
679
62.0k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_unexpected() &&
Line
Count
Source
677
62.0k
    {
678
62.0k
        return std::move(*unexpected_ptr());
679
62.0k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &&
680
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
681
    {
682
        return std::move(*unexpected_ptr());
683
    }
684
685
    SCN_NODISCARD constexpr bool has_value() const noexcept
686
34.6M
    {
687
34.6M
        return m_has_value;
688
34.6M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Line
Count
Source
686
1.52M
    {
687
1.52M
        return m_has_value;
688
1.52M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Line
Count
Source
686
1.81M
    {
687
1.81M
        return m_has_value;
688
1.81M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::has_value() const
Line
Count
Source
686
15.6M
    {
687
15.6M
        return m_has_value;
688
15.6M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::has_value() const
Line
Count
Source
686
15.6M
    {
687
15.6M
        return m_has_value;
688
15.6M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
689
690
    template <typename... Args>
691
    void construct(Args&&... args) noexcept(
692
        std::is_nothrow_constructible_v<T, Args...>)
693
6.89M
    {
694
6.89M
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
695
6.89M
        m_has_value = true;
696
6.89M
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<>()
Line
Count
Source
693
298k
    {
694
298k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
695
298k
        m_has_value = true;
696
298k
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<>()
Line
Count
Source
693
357k
    {
694
357k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
695
357k
        m_has_value = true;
696
357k
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct<>()
Line
Count
Source
693
3.12M
    {
694
3.12M
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
695
3.12M
        m_has_value = true;
696
3.12M
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct<>()
Line
Count
Source
693
3.12M
    {
694
3.12M
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
695
3.12M
        m_has_value = true;
696
3.12M
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<>()
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<>()
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<>()
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
697
    template <typename... Args>
698
    void construct_unexpected(Args&&... args) noexcept(
699
        std::is_nothrow_constructible_v<E, Args...>)
700
372k
    {
701
372k
        scn::detail::construct_at(unexpected_ptr(),
702
372k
                                  std::forward<Args>(args)...);
703
372k
        m_has_value = false;
704
372k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
700
31.0k
    {
701
31.0k
        scn::detail::construct_at(unexpected_ptr(),
702
31.0k
                                  std::forward<Args>(args)...);
703
31.0k
        m_has_value = false;
704
31.0k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
700
31.0k
    {
701
31.0k
        scn::detail::construct_at(unexpected_ptr(),
702
31.0k
                                  std::forward<Args>(args)...);
703
31.0k
        m_has_value = false;
704
31.0k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
700
31.0k
    {
701
31.0k
        scn::detail::construct_at(unexpected_ptr(),
702
31.0k
                                  std::forward<Args>(args)...);
703
31.0k
        m_has_value = false;
704
31.0k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
700
31.0k
    {
701
31.0k
        scn::detail::construct_at(unexpected_ptr(),
702
31.0k
                                  std::forward<Args>(args)...);
703
31.0k
        m_has_value = false;
704
31.0k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
700
62.0k
    {
701
62.0k
        scn::detail::construct_at(unexpected_ptr(),
702
62.0k
                                  std::forward<Args>(args)...);
703
62.0k
        m_has_value = false;
704
62.0k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
700
62.0k
    {
701
62.0k
        scn::detail::construct_at(unexpected_ptr(),
702
62.0k
                                  std::forward<Args>(args)...);
703
62.0k
        m_has_value = false;
704
62.0k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
700
62.0k
    {
701
62.0k
        scn::detail::construct_at(unexpected_ptr(),
702
62.0k
                                  std::forward<Args>(args)...);
703
62.0k
        m_has_value = false;
704
62.0k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
700
62.0k
    {
701
62.0k
        scn::detail::construct_at(unexpected_ptr(),
702
62.0k
                                  std::forward<Args>(args)...);
703
62.0k
        m_has_value = false;
704
62.0k
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
705
706
    void destroy_value() noexcept
707
6.89M
    {
708
6.89M
        scn::detail::destroy_at(value_ptr());
709
6.89M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Line
Count
Source
707
298k
    {
708
298k
        scn::detail::destroy_at(value_ptr());
709
298k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Line
Count
Source
707
357k
    {
708
357k
        scn::detail::destroy_at(value_ptr());
709
357k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::destroy_value()
Line
Count
Source
707
3.12M
    {
708
3.12M
        scn::detail::destroy_at(value_ptr());
709
3.12M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::destroy_value()
Line
Count
Source
707
3.12M
    {
708
3.12M
        scn::detail::destroy_at(value_ptr());
709
3.12M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
710
    void destroy_unexpected() noexcept
711
372k
    {
712
372k
        scn::detail::destroy_at(unexpected_ptr());
713
372k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Line
Count
Source
711
62.0k
    {
712
62.0k
        scn::detail::destroy_at(unexpected_ptr());
713
62.0k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Line
Count
Source
711
62.0k
    {
712
62.0k
        scn::detail::destroy_at(unexpected_ptr());
713
62.0k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::destroy_unexpected()
Line
Count
Source
711
124k
    {
712
124k
        scn::detail::destroy_at(unexpected_ptr());
713
124k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::destroy_unexpected()
Line
Count
Source
711
124k
    {
712
124k
        scn::detail::destroy_at(unexpected_ptr());
713
124k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
714
715
private:
716
    T* value_ptr() noexcept
717
34.1M
    {
718
34.1M
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
719
34.1M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Line
Count
Source
717
1.43M
    {
718
1.43M
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
719
1.43M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Line
Count
Source
717
1.72M
    {
718
1.72M
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
719
1.72M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::value_ptr()
Line
Count
Source
717
15.4M
    {
718
15.4M
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
719
15.4M
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::value_ptr()
Line
Count
Source
717
15.4M
    {
718
15.4M
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
719
15.4M
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
720
    const T* value_ptr() const noexcept
721
    {
722
        return reinterpret_cast<const T*>(
723
            SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
724
    }
725
726
    SCN_GCC_PUSH
727
    SCN_GCC_IGNORE("-Wcast-align")
728
    unexpected<E>* unexpected_ptr() noexcept
729
930k
    {
730
930k
        return reinterpret_cast<unexpected<E>*>(
731
930k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
732
930k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Line
Count
Source
729
155k
    {
730
155k
        return reinterpret_cast<unexpected<E>*>(
731
155k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
732
155k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Line
Count
Source
729
155k
    {
730
155k
        return reinterpret_cast<unexpected<E>*>(
731
155k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
732
155k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::unexpected_ptr()
Line
Count
Source
729
310k
    {
730
310k
        return reinterpret_cast<unexpected<E>*>(
731
310k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
732
310k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::unexpected_ptr()
Line
Count
Source
729
310k
    {
730
310k
        return reinterpret_cast<unexpected<E>*>(
731
310k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
732
310k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
733
    const unexpected<E>* unexpected_ptr() const noexcept
734
    {
735
        return reinterpret_cast<const unexpected<E>*>(
736
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
737
    }
738
    SCN_GCC_POP
739
740
    static constexpr std::size_t required_size =
741
        detail::max(sizeof(T), sizeof(unexpected<E>));
742
    static constexpr std::size_t required_alignment =
743
        detail::max(alignof(T), alignof(unexpected<E>));
744
745
    alignas(required_alignment) unsigned char m_memory[required_size];
746
    bool m_has_value;
747
};
748
749
template <typename E>
750
struct SCN_TRIVIAL_ABI expected_storage_base<void, E, false> {
751
    constexpr expected_storage_base() noexcept : m_has_value(true) {}
752
753
    explicit constexpr expected_storage_base(deferred_init_tag_t) noexcept
754
        : m_has_value(false)
755
    {
756
    }
757
758
    explicit constexpr expected_storage_base(std::in_place_t) noexcept
759
        : m_has_value(true)
760
    {
761
    }
762
763
    template <typename... Args,
764
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
765
    explicit constexpr expected_storage_base(
766
        unexpect_t,
767
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
768
        : m_has_value(false)
769
    {
770
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
771
    }
772
773
    ~expected_storage_base()
774
    {
775
        if (!has_value()) {
776
            destroy_unexpected();
777
        }
778
    }
779
780
    constexpr unexpected<E>& get_unexpected() & noexcept
781
    {
782
        return *unexpected_ptr();
783
    }
784
    constexpr const unexpected<E>& get_unexpected() const& noexcept
785
    {
786
        return *unexpected_ptr();
787
    }
788
    constexpr unexpected<E>&& get_unexpected() && noexcept
789
    {
790
        return std::move(*unexpected_ptr());
791
    }
792
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
793
    {
794
        return std::move(*unexpected_ptr());
795
    }
796
797
    SCN_NODISCARD constexpr bool has_value() const noexcept
798
    {
799
        return m_has_value;
800
    }
801
802
    template <typename... Args>
803
    constexpr void construct(Args&&...) noexcept
804
    {
805
        m_has_value = true;
806
    }
807
    template <typename... Args>
808
    void construct_unexpected(Args&&... args) noexcept(
809
        std::is_nothrow_constructible_v<E, Args...>)
810
    {
811
        scn::detail::construct_at(unexpected_ptr(),
812
                                  std::forward<Args>(args)...);
813
        m_has_value = false;
814
    }
815
816
    static constexpr void destroy_value() noexcept {}
817
    void destroy_unexpected() noexcept
818
    {
819
        scn::detail::destroy_at(unexpected_ptr());
820
    }
821
822
private:
823
    SCN_GCC_PUSH
824
    SCN_GCC_IGNORE("-Wcast-align")
825
    unexpected<E>* unexpected_ptr()
826
    {
827
        return reinterpret_cast<unexpected<E>*>(m_memory);
828
    }
829
    const unexpected<E>* unexpected_ptr() const
830
    {
831
        return reinterpret_cast<const unexpected<E>*>(m_memory);
832
    }
833
    SCN_GCC_POP
834
835
    static constexpr std::size_t required_size = sizeof(unexpected<E>);
836
    static constexpr std::size_t required_alignment = alignof(unexpected<E>);
837
838
    alignas(required_alignment) unsigned char m_memory[required_size];
839
    bool m_has_value;
840
};
841
842
template <typename T, typename U>
843
using is_void_or = std::conditional_t<std::is_void_v<T>, std::true_type, U>;
844
845
template <typename T, typename E, typename Enable = void>
846
struct expected_operations_base;
847
848
template <typename T, typename E>
849
struct SCN_TRIVIAL_ABI expected_operations_base<
850
    T,
851
    E,
852
    std::enable_if_t<(
853
        std::is_void_v<T> ||
854
        std::is_trivially_copyable_v<T>)&&std::is_trivially_copyable_v<E>>>
855
    : expected_storage_base<T, E> {
856
    using expected_storage_base<T, E>::expected_storage_base;
857
};
858
859
template <typename T, typename E>
860
struct SCN_TRIVIAL_ABI expected_operations_base<
861
    T,
862
    E,
863
    std::enable_if_t<!std::is_void_v<T> && (!std::is_trivially_copyable_v<T> ||
864
                                            !std::is_trivially_copyable_v<E>)>>
865
    : expected_storage_base<T, E> {
866
    using expected_storage_base<T, E>::expected_storage_base;
867
868
    expected_operations_base(const expected_operations_base& other) noexcept(
869
        std::is_nothrow_copy_constructible_v<T> &&
870
        std::is_nothrow_copy_constructible_v<E>)
871
        : expected_storage_base<T, E>(deferred_init_tag)
872
    {
873
        construct_common(other);
874
    }
875
    expected_operations_base(expected_operations_base&& other) noexcept(
876
        std::is_nothrow_move_constructible_v<T> &&
877
        std::is_nothrow_move_constructible_v<E>)
878
        : expected_storage_base<T, E>(deferred_init_tag)
879
    {
880
        construct_common(std::move(other));
881
    }
882
883
    expected_operations_base& operator=(const expected_operations_base& other)
884
    // gcc 11 and lower evaluate noexcept in a weird context
885
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
886
        noexcept(noexcept(
887
            SCN_DECLVAL(expected_operations_base&).assign_common(other)))
888
#else
889
        noexcept(noexcept(assign_common(other)))
890
#endif
891
    {
892
        assign_common(other);
893
        return *this;
894
    }
895
    expected_operations_base& operator=(expected_operations_base&& other)
896
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
897
        noexcept(noexcept(SCN_DECLVAL(expected_operations_base&)
898
                              .assign_common(std::move(other))))
899
#else
900
        noexcept(noexcept(assign_common(std::move(other))))
901
#endif
902
279k
    {
903
279k
        assign_common(std::move(other));
904
279k
        return *this;
905
279k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
902
31.0k
    {
903
31.0k
        assign_common(std::move(other));
904
31.0k
        return *this;
905
31.0k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
902
31.0k
    {
903
31.0k
        assign_common(std::move(other));
904
31.0k
        return *this;
905
31.0k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
902
31.0k
    {
903
31.0k
        assign_common(std::move(other));
904
31.0k
        return *this;
905
31.0k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
902
62.0k
    {
903
62.0k
        assign_common(std::move(other));
904
62.0k
        return *this;
905
62.0k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
902
62.0k
    {
903
62.0k
        assign_common(std::move(other));
904
62.0k
        return *this;
905
62.0k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
902
62.0k
    {
903
62.0k
        assign_common(std::move(other));
904
62.0k
        return *this;
905
62.0k
    }
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
906
907
    ~expected_operations_base() = default;
908
909
private:
910
    template <typename Other>
911
    void construct_common(Other&& other) noexcept(
912
        noexcept(SCN_DECLVAL(expected_storage_base<T, E>)
913
                     .construct(std::forward<Other>(other).get_value())) &&
914
        noexcept(SCN_DECLVAL(expected_storage_base<T, E>)
915
                     .construct_unexpected(
916
                         std::forward<Other>(other).get_unexpected())))
917
0
    {
918
0
        if (other.has_value()) {
919
0
            this->construct(std::forward<Other>(other).get_value());
920
0
        }
921
0
        else {
922
0
            this->construct_unexpected(
923
0
                std::forward<Other>(other).get_unexpected());
924
0
        }
925
0
    }
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
926
927
    template <typename Other>
928
    void assign_common(Other&& other)
929
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
930
        noexcept(
931
            noexcept(SCN_DECLVAL(expected_operations_base&)
932
                         .reassign_value(std::forward<Other>(other))) &&
933
            noexcept(SCN_DECLVAL(expected_operations_base&)
934
                         .reassign_unexpected(std::forward<Other>(other))) &&
935
            noexcept(SCN_DECLVAL(expected_operations_base&)
936
                         .assign_value_over_unexpected(
937
                             std::forward<Other>(other))) &&
938
            noexcept(
939
                SCN_DECLVAL(expected_operations_base&)
940
                    .assign_unexpected_over_value(std::forward<Other>(other))))
941
#else
942
        noexcept(
943
            noexcept(reassign_value(std::forward<Other>(other))) &&
944
            noexcept(reassign_unexpected(std::forward<Other>(other))) &&
945
            noexcept(
946
                assign_value_over_unexpected(std::forward<Other>(other))) &&
947
            noexcept(assign_unexpected_over_value(std::forward<Other>(other))))
948
#endif
949
279k
    {
950
279k
        if (this->has_value()) {
951
279k
            if (other.has_value()) {
952
0
                return reassign_value(std::forward<Other>(other));
953
0
            }
954
279k
            return assign_unexpected_over_value(std::forward<Other>(other));
955
279k
        }
956
957
0
        if (other.has_value()) {
958
0
            return assign_value_over_unexpected(std::forward<Other>(other));
959
0
        }
960
0
        return reassign_unexpected(std::forward<Other>(other));
961
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
949
31.0k
    {
950
31.0k
        if (this->has_value()) {
951
31.0k
            if (other.has_value()) {
952
0
                return reassign_value(std::forward<Other>(other));
953
0
            }
954
31.0k
            return assign_unexpected_over_value(std::forward<Other>(other));
955
31.0k
        }
956
957
0
        if (other.has_value()) {
958
0
            return assign_value_over_unexpected(std::forward<Other>(other));
959
0
        }
960
0
        return reassign_unexpected(std::forward<Other>(other));
961
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
949
31.0k
    {
950
31.0k
        if (this->has_value()) {
951
31.0k
            if (other.has_value()) {
952
0
                return reassign_value(std::forward<Other>(other));
953
0
            }
954
31.0k
            return assign_unexpected_over_value(std::forward<Other>(other));
955
31.0k
        }
956
957
0
        if (other.has_value()) {
958
0
            return assign_value_over_unexpected(std::forward<Other>(other));
959
0
        }
960
0
        return reassign_unexpected(std::forward<Other>(other));
961
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
949
31.0k
    {
950
31.0k
        if (this->has_value()) {
951
31.0k
            if (other.has_value()) {
952
0
                return reassign_value(std::forward<Other>(other));
953
0
            }
954
31.0k
            return assign_unexpected_over_value(std::forward<Other>(other));
955
31.0k
        }
956
957
0
        if (other.has_value()) {
958
0
            return assign_value_over_unexpected(std::forward<Other>(other));
959
0
        }
960
0
        return reassign_unexpected(std::forward<Other>(other));
961
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
949
62.0k
    {
950
62.0k
        if (this->has_value()) {
951
62.0k
            if (other.has_value()) {
952
0
                return reassign_value(std::forward<Other>(other));
953
0
            }
954
62.0k
            return assign_unexpected_over_value(std::forward<Other>(other));
955
62.0k
        }
956
957
0
        if (other.has_value()) {
958
0
            return assign_value_over_unexpected(std::forward<Other>(other));
959
0
        }
960
0
        return reassign_unexpected(std::forward<Other>(other));
961
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
949
62.0k
    {
950
62.0k
        if (this->has_value()) {
951
62.0k
            if (other.has_value()) {
952
0
                return reassign_value(std::forward<Other>(other));
953
0
            }
954
62.0k
            return assign_unexpected_over_value(std::forward<Other>(other));
955
62.0k
        }
956
957
0
        if (other.has_value()) {
958
0
            return assign_value_over_unexpected(std::forward<Other>(other));
959
0
        }
960
0
        return reassign_unexpected(std::forward<Other>(other));
961
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
949
62.0k
    {
950
62.0k
        if (this->has_value()) {
951
62.0k
            if (other.has_value()) {
952
0
                return reassign_value(std::forward<Other>(other));
953
0
            }
954
62.0k
            return assign_unexpected_over_value(std::forward<Other>(other));
955
62.0k
        }
956
957
0
        if (other.has_value()) {
958
0
            return assign_value_over_unexpected(std::forward<Other>(other));
959
0
        }
960
0
        return reassign_unexpected(std::forward<Other>(other));
961
0
    }
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
962
963
    template <typename Other>
964
    void reassign_value(Other&& other) noexcept(
965
        std::is_nothrow_assignable_v<
966
            T,
967
            decltype(std::forward<Other>(other).get_value())>)
968
0
    {
969
0
        this->get_value() = std::forward<Other>(other).get_value();
970
0
    }
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
971
972
    template <typename Other>
973
    void reassign_unexpected(Other&& other) noexcept(
974
        std::is_nothrow_assignable_v<
975
            E,
976
            decltype(std::forward<Other>(other).get_unexpected())>)
977
0
    {
978
0
        this->get_unexpected() = std::forward<Other>(other).get_unexpected();
979
0
    }
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
980
981
#if SCN_HAS_EXCEPTIONS
982
    void assign_value_over_unexpected(
983
        const expected_operations_base&
984
            other) noexcept(std::is_nothrow_copy_constructible_v<T> ||
985
                            std::is_nothrow_move_constructible_v<T>)
986
    {
987
        if constexpr (std::is_nothrow_copy_constructible_v<T>) {
988
            this->destroy_unexpected();
989
            this->construct(other.get_value());
990
        }
991
        else if constexpr (std::is_nothrow_move_constructible_v<T>) {
992
            T tmp = other.get_value();
993
            this->destroy_unexpected();
994
            this->construct(std::move(tmp));
995
        }
996
        else {
997
            auto tmp = std::move(this->get_unexpecetd());
998
            this->destroy_unexpected();
999
1000
            try {
1001
                this->construct(other.get());
1002
            }
1003
            catch (...) {
1004
                this->construct_unexpected(std::move(tmp));
1005
                throw;
1006
            }
1007
        }
1008
    }
1009
1010
    void
1011
    assign_value_over_unexpected(expected_operations_base&& other) noexcept(
1012
        std::is_nothrow_move_constructible_v<T>)
1013
0
    {
1014
0
        if constexpr (std::is_nothrow_move_constructible_v<T>) {
1015
0
            this->destroy_unexpected();
1016
0
            this->construct(std::move(other).get_value());
1017
        }
1018
        else {
1019
            auto tmp = std::move(this->get_unexpected());
1020
            this->destroy_unexpected();
1021
1022
            try {
1023
                this->construct(std::move(other).get_value());
1024
            }
1025
            catch (...) {
1026
                this->construct_unexpected(std::move(tmp));
1027
                throw;
1028
            }
1029
        }
1030
0
    }
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
1031
#else
1032
    template <typename Other>
1033
    void assing_value_over_unexpected(Other&& other) noexcept
1034
    {
1035
        this->destroy_unexpected();
1036
        this->construct_value(std::forward<Other>(other).get_value());
1037
    }
1038
#endif
1039
1040
    template <typename Other>
1041
    void assign_unexpected_over_value(Other&& other) noexcept(
1042
        std::is_nothrow_constructible_v<
1043
            E,
1044
            decltype(std::forward<Other>(other).get_unexpected())>)
1045
279k
    {
1046
279k
        this->destroy_value();
1047
279k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1048
279k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1045
31.0k
    {
1046
31.0k
        this->destroy_value();
1047
31.0k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1048
31.0k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1045
31.0k
    {
1046
31.0k
        this->destroy_value();
1047
31.0k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1048
31.0k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1045
31.0k
    {
1046
31.0k
        this->destroy_value();
1047
31.0k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1048
31.0k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1045
62.0k
    {
1046
62.0k
        this->destroy_value();
1047
62.0k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1048
62.0k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1045
62.0k
    {
1046
62.0k
        this->destroy_value();
1047
62.0k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1048
62.0k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1045
62.0k
    {
1046
62.0k
        this->destroy_value();
1047
62.0k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1048
62.0k
    }
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
1049
};
1050
1051
template <typename E>
1052
struct SCN_TRIVIAL_ABI
1053
    expected_operations_base<void,
1054
                             E,
1055
                             std::enable_if_t<!std::is_trivially_copyable_v<E>>>
1056
    : expected_storage_base<void, E> {
1057
    using expected_storage_base<void, E>::expected_storage_base;
1058
1059
    expected_operations_base(const expected_operations_base& other) noexcept(
1060
        std::is_nothrow_copy_constructible_v<E>)
1061
        : expected_storage_base<void, E>(deferred_init_tag)
1062
    {
1063
        construct_common(other);
1064
    }
1065
    expected_operations_base(expected_operations_base&& other) noexcept(
1066
        std::is_nothrow_move_constructible_v<E>)
1067
        : expected_storage_base<void, E>(deferred_init_tag)
1068
    {
1069
        construct_common(std::move(other));
1070
    }
1071
1072
    expected_operations_base& operator=(const expected_operations_base& other)
1073
    // gcc 11 and lower evaluate noexcept in a weird context
1074
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
1075
        noexcept(noexcept(
1076
            SCN_DECLVAL(expected_operations_base&).assign_common(other)))
1077
#else
1078
        noexcept(noexcept(assign_common(other)))
1079
#endif
1080
    {
1081
        assign_common(other);
1082
        return *this;
1083
    }
1084
    expected_operations_base& operator=(expected_operations_base&& other)
1085
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
1086
        noexcept(noexcept(SCN_DECLVAL(expected_operations_base&)
1087
                              .assign_common(std::move(other))))
1088
#else
1089
        noexcept(noexcept(assign_common(std::move(other))))
1090
#endif
1091
    {
1092
        assign_common(std::move(other));
1093
        return *this;
1094
    }
1095
1096
    ~expected_operations_base() = default;
1097
1098
private:
1099
    template <typename Other>
1100
    void construct_common(Other&& other) noexcept(
1101
        noexcept(expected_storage_base<void, E>::construct_unexpected(
1102
            std::forward<Other>(other).get_unexpected())))
1103
    {
1104
        if (other.has_value()) {
1105
            this->construct();
1106
        }
1107
        else {
1108
            this->construct_unexpected(
1109
                std::forward<Other>(other).get_unexpected());
1110
        }
1111
    }
1112
1113
    template <typename Other>
1114
    void assign_common(Other&& other)
1115
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
1116
        noexcept(
1117
            noexcept(SCN_DECLVAL(expected_operations_base&)
1118
                         .reassign_unexpected(std::forward<Other>(other))) &&
1119
            noexcept(
1120
                SCN_DECLVAL(expected_operations_base&)
1121
                    .assign_unexpected_over_value(std::forward<Other>(other))))
1122
#else
1123
        noexcept(
1124
            noexcept(reassign_unexpected(std::forward<Other>(other))) &&
1125
            noexcept(assign_unexpected_over_value(std::forward<Other>(other))))
1126
#endif
1127
    {
1128
        if (this->has_value()) {
1129
            if (other.has_value()) {
1130
                return reassign_value();
1131
            }
1132
            return assign_unexpected_over_value(std::forward<Other>(other));
1133
        }
1134
1135
        if (other.has_value()) {
1136
            return assign_value_over_unexpected();
1137
        }
1138
        return reassign_unexpected(std::forward<Other>(other));
1139
    }
1140
1141
    void reassign_value() noexcept {}
1142
1143
    template <typename Other>
1144
    void reassign_unexpected(Other&& other) noexcept(
1145
        std::is_nothrow_assignable_v<
1146
            E,
1147
            decltype(std::forward<Other>(other).get_unexpected())>)
1148
    {
1149
        this->get_unexpected() = std::forward<Other>(other).get_unexpected();
1150
    }
1151
1152
    void assign_value_over_unexpected() noexcept
1153
    {
1154
        this->destroy_unexpected();
1155
        this->construct();
1156
    }
1157
1158
    template <typename Other>
1159
    void assign_unexpected_over_value(Other&& other) noexcept(
1160
        std::is_nothrow_constructible_v<
1161
            E,
1162
            decltype(std::forward<Other>(other).get_unexpected())>)
1163
    {
1164
        this->destroy_value();
1165
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1166
    }
1167
};
1168
1169
/*
1170
 * Base class trickery to conditionally mark copy and move
1171
 * constructors of an expected as =deleted.
1172
 *
1173
 * We need to do this, because otherwise utilities like
1174
 * std::is_copy_constructible wouldn't work for expected: the
1175
 * constructors need to be explicitly =deleted, not just cause a
1176
 * compiler error when trying to copy a value of a non-copyable
1177
 * type.
1178
 *
1179
 * Rationale for doing this with base classes is above.
1180
 */
1181
template <
1182
    typename T,
1183
    typename E,
1184
    bool EnableCopy = ((std::is_copy_constructible_v<T> ||
1185
                        std::is_void_v<T>)&&std::is_copy_constructible_v<E>),
1186
    bool EnableMove = ((std::is_move_constructible_v<T> ||
1187
                        std::is_void_v<T>)&&std::is_move_constructible_v<E>)>
1188
struct expected_delete_ctor_base;
1189
1190
// Implementation for types that are both copy and move
1191
// constructible: Copy and move constructors are =defaulted
1192
template <typename T, typename E>
1193
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, true, true> {
1194
    expected_delete_ctor_base() = default;
1195
    expected_delete_ctor_base& operator=(const expected_delete_ctor_base&) =
1196
        default;
1197
    expected_delete_ctor_base& operator=(expected_delete_ctor_base&&) = default;
1198
    ~expected_delete_ctor_base() = default;
1199
1200
    expected_delete_ctor_base(const expected_delete_ctor_base&) = default;
1201
    expected_delete_ctor_base(expected_delete_ctor_base&&) = default;
1202
};
1203
1204
// Implementation for types that are neither copy nor move
1205
// constructible: Copy and move constructors are =deleted
1206
template <typename T, typename E>
1207
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, false, false> {
1208
    expected_delete_ctor_base() = default;
1209
    expected_delete_ctor_base& operator=(const expected_delete_ctor_base&) =
1210
        default;
1211
    expected_delete_ctor_base& operator=(expected_delete_ctor_base&&) = default;
1212
    ~expected_delete_ctor_base() = default;
1213
1214
    expected_delete_ctor_base(const expected_delete_ctor_base&) = delete;
1215
    expected_delete_ctor_base(expected_delete_ctor_base&&) = delete;
1216
};
1217
1218
// Implementation for types that are move constructible, but not
1219
// copy constructible Copy constructor is =deleted, but move
1220
// constructor is =defaulted
1221
template <typename T, typename E>
1222
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, false, true> {
1223
    expected_delete_ctor_base() = default;
1224
    expected_delete_ctor_base& operator=(const expected_delete_ctor_base&) =
1225
        default;
1226
    expected_delete_ctor_base& operator=(expected_delete_ctor_base&&) = default;
1227
    ~expected_delete_ctor_base() = default;
1228
1229
    expected_delete_ctor_base(const expected_delete_ctor_base&) = delete;
1230
    expected_delete_ctor_base(expected_delete_ctor_base&&) = default;
1231
};
1232
1233
template <typename T, typename E>
1234
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, true, false> {
1235
    static_assert(dependent_false<T>::value,
1236
                  "Nonsensical type: copy constructible, but not move "
1237
                  "constructible");
1238
};
1239
1240
// Same as above, but for assignment
1241
template <
1242
    typename T,
1243
    typename E,
1244
    bool EnableCopy = ((std::is_copy_constructible_v<T> ||
1245
                        std::is_void_v<T>)&&std::is_copy_constructible_v<E> &&
1246
                       (std::is_copy_assignable_v<T> ||
1247
                        std::is_void_v<T>)&&std::is_copy_assignable_v<E>),
1248
    bool EnableMove = ((std::is_move_constructible_v<T> ||
1249
                        std::is_void_v<T>)&&std::is_move_constructible_v<E> &&
1250
                       (std::is_move_assignable_v<T> ||
1251
                        std::is_void_v<T>)&&std::is_move_assignable_v<E>)>
1252
struct expected_delete_assign_base;
1253
1254
template <typename T, typename E>
1255
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, true, true> {
1256
    expected_delete_assign_base() = default;
1257
    expected_delete_assign_base(const expected_delete_assign_base&) = default;
1258
    expected_delete_assign_base(expected_delete_assign_base&&) = default;
1259
    ~expected_delete_assign_base() = default;
1260
1261
    expected_delete_assign_base& operator=(const expected_delete_assign_base&) =
1262
        default;
1263
    expected_delete_assign_base& operator=(expected_delete_assign_base&&) =
1264
        default;
1265
};
1266
1267
template <typename T, typename E>
1268
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, false, false> {
1269
    expected_delete_assign_base() = default;
1270
    expected_delete_assign_base(const expected_delete_assign_base&) = default;
1271
    expected_delete_assign_base(expected_delete_assign_base&&) = default;
1272
    ~expected_delete_assign_base() = default;
1273
1274
    expected_delete_assign_base& operator=(const expected_delete_assign_base&) =
1275
        delete;
1276
    expected_delete_assign_base& operator=(expected_delete_assign_base&&) =
1277
        delete;
1278
};
1279
1280
template <typename T, typename E>
1281
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, false, true> {
1282
    expected_delete_assign_base() = default;
1283
    expected_delete_assign_base(const expected_delete_assign_base&) = default;
1284
    expected_delete_assign_base(expected_delete_assign_base&&) = default;
1285
    ~expected_delete_assign_base() = default;
1286
1287
    expected_delete_assign_base& operator=(const expected_delete_assign_base&) =
1288
        delete;
1289
    expected_delete_assign_base& operator=(expected_delete_assign_base&&) =
1290
        default;
1291
};
1292
1293
template <typename T, typename E>
1294
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, true, false> {
1295
    static_assert(dependent_false<T>::value,
1296
                  "Nonsensical type: copy assignable, but not move "
1297
                  "assignable");
1298
};
1299
1300
struct non_default_ctor_tag_t {};
1301
1302
/*
1303
 * Same as above, but for the default constructor
1304
 *
1305
 * The constructor taking a non_default_ctor_tag_t is needed, to
1306
 * signal that we're not default constructing.
1307
 */
1308
template <typename T,
1309
          typename E,
1310
          bool = std::is_default_constructible_v<T> || std::is_void_v<T>>
1311
struct SCN_TRIVIAL_ABI expected_default_ctor_base {
1312
    constexpr expected_default_ctor_base() = default;
1313
    constexpr explicit expected_default_ctor_base(
1314
        non_default_ctor_tag_t) noexcept
1315
64.0M
    {
1316
64.0M
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
31.0k
    {
1316
31.0k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
597k
    {
1316
597k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
31.0k
    {
1316
31.0k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
31.0k
    {
1316
31.0k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
357k
    {
1316
357k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
62.0k
    {
1316
62.0k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
6.24M
    {
1316
6.24M
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
62.0k
    {
1316
62.0k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
62.0k
    {
1316
62.0k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
3.12M
    {
1316
3.12M
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
831k
    {
1316
831k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
7.43M
    {
1316
7.43M
    }
scn::v4::detail::expected_default_ctor_base<long, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
10.3M
    {
1316
10.3M
    }
scn::v4::detail::expected_default_ctor_base<char const*, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
1.37M
    {
1316
1.37M
    }
scn::v4::detail::expected_default_ctor_base<wchar_t const*, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
14.8M
    {
1316
14.8M
    }
scn::v4::detail::expected_default_ctor_base<void, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
343k
    {
1316
343k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
336k
    {
1316
336k
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
273k
    {
1316
273k
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<char const*, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
554k
    {
1316
554k
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
450k
    {
1316
450k
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<char const*, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::regex_constants::syntax_option_type, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
3.08M
    {
1316
3.08M
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
2.46M
    {
1316
2.46M
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<wchar_t const*, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
6.16M
    {
1316
6.16M
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1315
4.92M
    {
1316
4.92M
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<wchar_t const*, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<wchar_t, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
1317
};
1318
template <typename T, typename E>
1319
struct SCN_TRIVIAL_ABI expected_default_ctor_base<T, E, false> {
1320
    constexpr expected_default_ctor_base() = delete;
1321
    constexpr explicit expected_default_ctor_base(
1322
        non_default_ctor_tag_t) noexcept
1323
    {
1324
    }
1325
};
1326
1327
template <typename T>
1328
using remove_cvref_t = std::remove_cv_t<std::remove_reference_t<T>>;
1329
1330
template <typename T>
1331
struct is_expected_impl : std::false_type {};
1332
template <typename T, typename E>
1333
struct is_expected_impl<expected<T, E>> : std::true_type {};
1334
template <typename T>
1335
using is_expected = is_expected_impl<remove_cvref_t<T>>;
1336
1337
template <typename Exp>
1338
using is_exp_void = std::is_void<typename remove_cvref_t<Exp>::value_type>;
1339
1340
template <typename Exp>
1341
using expected_value_type = typename remove_cvref_t<Exp>::value_type;
1342
1343
template <
1344
    typename F,
1345
    typename... Args,
1346
    typename = std::void_t<decltype(SCN_DECLVAL(F&&)(SCN_DECLVAL(Args&&)...))>>
1347
constexpr decltype(auto) trivial_invoke(F&& f, Args&&... args) noexcept(
1348
    noexcept(std::forward<F>(f)(std::forward<Args>(args)...)))
1349
26.8k
{
1350
26.8k
    return std::forward<F>(f)(std::forward<Args>(args)...);
1351
26.8k
}
decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error, void>(scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&&)
Line
Count
Source
1349
26.8k
{
1350
26.8k
    return std::forward<F>(f)(std::forward<Args>(args)...);
1351
26.8k
}
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error, void>(scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}, scn::v4::impl::parse_error, void>(scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}&&, scn::v4::impl::parse_error&&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}, scn::v4::impl::parse_error&, void>(scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}&&, scn::v4::impl::parse_error&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error const&, void>(scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error const&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&, void>(scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error const&, void>(scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error const&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&, void>(scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}, scn::v4::impl::parse_error const&, void>(scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}&&, scn::v4::impl::parse_error const&)
1352
1353
// and_then
1354
1355
template <typename Exp,
1356
          typename F,
1357
          std::enable_if_t<!is_exp_void<Exp>::value>* = nullptr,
1358
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1359
                                                 *SCN_DECLVAL(Exp)))>
1360
constexpr auto and_then_impl(Exp&& exp, F&& f) noexcept(
1361
    noexcept(trivial_invoke(std::forward<F>(f), *std::forward<Exp>(exp))) &&
1362
    std::is_nothrow_constructible_v<Ret,
1363
                                    unexpect_t,
1364
                                    decltype(std::forward<Exp>(exp).error())>)
1365
{
1366
    static_assert(is_expected<Ret>::value, "F must return an expected");
1367
1368
    return SCN_LIKELY(exp.has_value())
1369
               ? trivial_invoke(std::forward<F>(f), *std::forward<Exp>(exp))
1370
               : Ret(unexpect, std::forward<Exp>(exp).error());
1371
}
1372
template <typename Exp,
1373
          typename F,
1374
          std::enable_if_t<is_exp_void<Exp>::value>* = nullptr,
1375
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F)))>
1376
constexpr auto and_then_impl(Exp&& exp, F&& f) noexcept(
1377
    noexcept(trivial_invoke(std::forward<F>(f))) &&
1378
    std::is_nothrow_constructible_v<Ret,
1379
                                    unexpect_t,
1380
                                    decltype(std::forward<Exp>(exp).error())>)
1381
{
1382
    static_assert(is_expected<Ret>::value, "F must return an expected");
1383
1384
    return SCN_LIKELY(exp.has_value())
1385
               ? trivial_invoke(std::forward<F>(f))
1386
               : Ret(unexpect, std::forward<Exp>(exp).error());
1387
}
1388
1389
// or_else
1390
1391
template <typename Exp,
1392
          typename F,
1393
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1394
                                                 SCN_DECLVAL(Exp).error()))>
1395
constexpr auto or_else_impl(Exp&& exp, F&& f) noexcept(
1396
    noexcept(trivial_invoke(std::forward<F>(f),
1397
                            std::forward<Exp>(exp).error())) &&
1398
    std::is_nothrow_constructible_v<Ret, decltype(std::forward<Exp>(exp))>)
1399
{
1400
    static_assert(is_expected<Ret>::value, "F must return an expected");
1401
1402
    return SCN_LIKELY(exp.has_value())
1403
               ? Ret(std::forward<Exp>(exp))
1404
               : trivial_invoke(std::forward<F>(f),
1405
                                std::forward<Exp>(exp).error());
1406
}
1407
1408
// transform
1409
1410
template <typename Exp,
1411
          typename F,
1412
          std::enable_if_t<!is_exp_void<Exp>::value>* = nullptr,
1413
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1414
                                                 *SCN_DECLVAL(Exp)))>
1415
constexpr auto transform_impl(Exp&& exp, F&& f)
1416
{
1417
    using result = typename remove_cvref_t<Exp>::template rebind<Ret>;
1418
    if constexpr (std::is_void_v<Ret>) {
1419
        if (SCN_LIKELY(exp.has_value())) {
1420
            trivial_invoke(std::forward<F>(f), *std::forward<Exp>(exp));
1421
            return result();
1422
        }
1423
        return result(unexpect, std::forward<Exp>(exp).error());
1424
    }
1425
    else {
1426
        return SCN_LIKELY(exp.has_value())
1427
                   ? result(trivial_invoke(std::forward<F>(f),
1428
                                           *std::forward<Exp>(exp)))
1429
                   : result(unexpect, std::forward<Exp>(exp).error());
1430
    }
1431
}
1432
template <typename Exp,
1433
          typename F,
1434
          std::enable_if_t<is_exp_void<Exp>::value>* = nullptr,
1435
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F)))>
1436
constexpr auto transform_impl(Exp&& exp, F&& f)
1437
{
1438
    using result = typename remove_cvref_t<Exp>::template rebind<Ret>;
1439
    if constexpr (std::is_void_v<Ret>) {
1440
        if (SCN_LIKELY(exp.has_value())) {
1441
            trivial_invoke(std::forward<F>(f));
1442
            return result();
1443
        }
1444
        return result(unexpect, std::forward<Exp>(exp).error());
1445
    }
1446
    else {
1447
        return SCN_LIKELY(exp.has_value())
1448
                   ? result(trivial_invoke(std::forward<F>(f)))
1449
                   : result(unexpect, std::forward<Exp>(exp).error());
1450
    }
1451
}
1452
1453
// transform_error
1454
1455
template <typename Exp,
1456
          typename F,
1457
          std::enable_if_t<!is_exp_void<Exp>::value>* = nullptr,
1458
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1459
                                                 SCN_DECLVAL(Exp).error()))>
1460
constexpr auto transform_error_impl(Exp&& exp, F&& f)
1461
10.1M
{
1462
    if constexpr (std::is_void_v<Ret>) {
1463
        using result = expected<expected_value_type<Exp>, monostate>;
1464
        if (SCN_LIKELY(exp.has_value())) {
1465
            return result(*std::forward<Exp>(exp));
1466
        }
1467
1468
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1469
        return result(unexpect, monostate{});
1470
    }
1471
10.1M
    else {
1472
10.1M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1473
10.1M
        return SCN_LIKELY(exp.has_value())
1474
10.1M
                   ? result(*std::forward<Exp>(exp))
1475
10.1M
                   : result(unexpect,
1476
26.8k
                            trivial_invoke(std::forward<F>(f),
1477
26.8k
                                           std::forward<Exp>(exp).error()));
1478
10.1M
    }
1479
10.1M
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Line
Count
Source
1461
336k
{
1462
    if constexpr (std::is_void_v<Ret>) {
1463
        using result = expected<expected_value_type<Exp>, monostate>;
1464
        if (SCN_LIKELY(exp.has_value())) {
1465
            return result(*std::forward<Exp>(exp));
1466
        }
1467
1468
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1469
        return result(unexpect, monostate{});
1470
    }
1471
336k
    else {
1472
336k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1473
336k
        return SCN_LIKELY(exp.has_value())
1474
336k
                   ? result(*std::forward<Exp>(exp))
1475
336k
                   : result(unexpect,
1476
4.49k
                            trivial_invoke(std::forward<F>(f),
1477
4.49k
                                           std::forward<Exp>(exp).error()));
1478
336k
    }
1479
336k
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Line
Count
Source
1461
3.08M
{
1462
    if constexpr (std::is_void_v<Ret>) {
1463
        using result = expected<expected_value_type<Exp>, monostate>;
1464
        if (SCN_LIKELY(exp.has_value())) {
1465
            return result(*std::forward<Exp>(exp));
1466
        }
1467
1468
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1469
        return result(unexpect, monostate{});
1470
    }
1471
3.08M
    else {
1472
3.08M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1473
3.08M
        return SCN_LIKELY(exp.has_value())
1474
3.08M
                   ? result(*std::forward<Exp>(exp))
1475
3.08M
                   : result(unexpect,
1476
5.21k
                            trivial_invoke(std::forward<F>(f),
1477
5.21k
                                           std::forward<Exp>(exp).error()));
1478
3.08M
    }
1479
3.08M
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ES9_EEDaOSE_OT0_
Line
Count
Source
1461
554k
{
1462
    if constexpr (std::is_void_v<Ret>) {
1463
        using result = expected<expected_value_type<Exp>, monostate>;
1464
        if (SCN_LIKELY(exp.has_value())) {
1465
            return result(*std::forward<Exp>(exp));
1466
        }
1467
1468
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1469
        return result(unexpect, monostate{});
1470
    }
1471
554k
    else {
1472
554k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1473
554k
        return SCN_LIKELY(exp.has_value())
1474
554k
                   ? result(*std::forward<Exp>(exp))
1475
554k
                   : result(unexpect,
1476
6.74k
                            trivial_invoke(std::forward<F>(f),
1477
6.74k
                                           std::forward<Exp>(exp).error()));
1478
554k
    }
1479
554k
}
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOST_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIcE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINSt3__117basic_string_viewIcNSB_11char_traitsIcEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESM_EEDaOSQ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeES8_EUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESJ_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeES8_EUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKcNS0_4impl11parse_errorEEEZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeES5_EUlS7_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOST_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIwE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINSt3__117basic_string_viewIwNSB_11char_traitsIwEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESM_EEDaOSQ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
_ZN3scn2v46detail20transform_error_implINS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ES9_EEDaOSE_OT0_
Line
Count
Source
1461
6.16M
{
1462
    if constexpr (std::is_void_v<Ret>) {
1463
        using result = expected<expected_value_type<Exp>, monostate>;
1464
        if (SCN_LIKELY(exp.has_value())) {
1465
            return result(*std::forward<Exp>(exp));
1466
        }
1467
1468
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1469
        return result(unexpect, monostate{});
1470
    }
1471
6.16M
    else {
1472
6.16M
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1473
6.16M
        return SCN_LIKELY(exp.has_value())
1474
6.16M
                   ? result(*std::forward<Exp>(exp))
1475
6.16M
                   : result(unexpect,
1476
10.4k
                            trivial_invoke(std::forward<F>(f),
1477
10.4k
                                           std::forward<Exp>(exp).error()));
1478
6.16M
    }
1479
6.16M
}
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ES9_EEDaOSE_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESJ_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKwNS0_4impl11parse_errorEEEZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ES9_EEDaOSE_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESM_EEDaOSR_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESM_EEDaOSR_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESQ_EEDaOSV_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESP_EEDaOSU_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESJ_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESI_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIcE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIcE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINSt3__117basic_string_viewIcNSB_11char_traitsIcEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOSS_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINSt3__117basic_string_viewIcNSB_11char_traitsIcEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESN_EEDaOSR_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeES8_EUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESL_EEDaOSP_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESK_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESI_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKcNS0_4impl11parse_errorEEEZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeES5_EUlS7_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESQ_EEDaOSV_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESP_EEDaOSU_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESJ_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESI_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIwE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIwE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINSt3__117basic_string_viewIwNSB_11char_traitsIwEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOSS_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINSt3__117basic_string_viewIwNSB_11char_traitsIwEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESN_EEDaOSR_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESL_EEDaOSP_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESK_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESI_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKwNS0_4impl11parse_errorEEEZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOST_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESN_EEDaOSS_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOST_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESN_EEDaOSS_OT0_
1480
template <typename Exp,
1481
          typename F,
1482
          std::enable_if_t<is_exp_void<Exp>::value>* = nullptr,
1483
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1484
                                                 SCN_DECLVAL(Exp).error()))>
1485
constexpr auto transform_error_impl(Exp&& exp, F&& f)
1486
{
1487
    if constexpr (std::is_void_v<Ret>) {
1488
        using result = expected<expected_value_type<Exp>, monostate>;
1489
        if (SCN_LIKELY(exp.has_value())) {
1490
            return result();
1491
        }
1492
1493
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1494
        return result(unexpect, monostate{});
1495
    }
1496
    else {
1497
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1498
        return SCN_LIKELY(exp.has_value())
1499
                   ? result()
1500
                   : result(unexpect,
1501
                            trivial_invoke(std::forward<F>(f),
1502
                                           std::forward<Exp>(exp).error()));
1503
    }
1504
}
1505
1506
template <class T, class E, class U, class G, class UR, class GR>
1507
using enable_from_other =
1508
    std::enable_if_t<std::is_constructible_v<T, UR> &&
1509
                     std::is_constructible_v<E, GR> &&
1510
                     !std::is_constructible_v<T, expected<U, G>&> &&
1511
                     !std::is_constructible_v<T, expected<U, G>&&> &&
1512
                     !std::is_constructible_v<T, const expected<U, G>&> &&
1513
                     !std::is_constructible_v<T, const expected<U, G>&&> &&
1514
                     !std::is_convertible_v<expected<U, G>&, T> &&
1515
                     !std::is_convertible_v<expected<U, G>&&, T> &&
1516
                     !std::is_convertible_v<const expected<U, G>&, T> &&
1517
                     !std::is_convertible_v<const expected<U, G>&&, T>>;
1518
}  // namespace detail
1519
1520
/**
1521
 * \see `std::expected`
1522
 */
1523
template <typename T, typename E>
1524
class SCN_TRIVIAL_ABI expected
1525
    : private detail::expected_operations_base<T, E>,
1526
      private detail::expected_delete_ctor_base<T, E>,
1527
      private detail::expected_delete_assign_base<T, E>,
1528
      private detail::expected_default_ctor_base<T, E> {
1529
    using base = detail::expected_operations_base<T, E>;
1530
    using ctor_base = detail::expected_default_ctor_base<T, E>;
1531
1532
    static_assert(std::is_void_v<T> || std::is_destructible_v<T>,
1533
                  "T must be void or Destructible");
1534
    static_assert(std::is_destructible_v<E>, "E must be Destructible");
1535
1536
    static_assert(!std::is_same_v<std::remove_cv_t<T>, std::in_place_t>);
1537
    static_assert(!std::is_same_v<std::remove_cv_t<T>, unexpect_t>);
1538
    static_assert(!std::is_same_v<std::remove_cv_t<T>, unexpected<E>>);
1539
1540
public:
1541
    using value_type = T;
1542
    using error_type = E;
1543
    using unexpected_type = unexpected<E>;
1544
1545
    template <typename U>
1546
    using rebind = expected<U, error_type>;
1547
1548
    // Special member functions are defaulted, implementations provided
1549
    // by base classes
1550
1551
37.9M
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1551
298k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1551
298k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1551
357k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1551
3.12M
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1551
3.12M
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1551
3.12M
    constexpr expected() = default;
scn::v4::expected<void, scn::v4::scan_error>::expected()
Line
Count
Source
1551
27.6M
    constexpr expected() = default;
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>::expected()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected()
1552
1553
    constexpr expected(const expected&) = default;
1554
    constexpr expected(expected&&) = default;
1555
    constexpr expected& operator=(const expected&) = default;
1556
279k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>&&)
Line
Count
Source
1556
31.0k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error>&&)
Line
Count
Source
1556
31.0k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>&&)
Line
Count
Source
1556
31.0k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>&&)
Line
Count
Source
1556
62.0k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error>&&)
Line
Count
Source
1556
62.0k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>&&)
Line
Count
Source
1556
62.0k
    constexpr expected& operator=(expected&&) = default;
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>&&)
1557
1558
    ~expected() = default;
1559
1560
    /**
1561
     * Construct an expected value.
1562
     * Intentionally non-explicit, to make constructing an expected
1563
     * value as transparent as possible.
1564
     */
1565
    template <typename U = value_type,
1566
              typename = std::enable_if_t<std::is_convertible_v<U, value_type>>>
1567
    SCN_IMPLICIT constexpr expected(U&& val) noexcept(
1568
        std::is_nothrow_constructible_v<base, std::in_place_t, U&&>)
1569
62.4M
        : base(std::in_place, std::forward<U>(val)),
1570
62.4M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
62.4M
    {
1572
62.4M
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&)
Line
Count
Source
1569
535k
        : base(std::in_place, std::forward<U>(val)),
1570
535k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
535k
    {
1572
535k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, void>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&&)
Line
Count
Source
1569
326k
        : base(std::in_place, std::forward<U>(val)),
1570
326k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
326k
    {
1572
326k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
1569
6.11M
        : base(std::in_place, std::forward<U>(val)),
1570
6.11M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
6.11M
    {
1572
6.11M
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, void>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&&)
Line
Count
Source
1569
3.05M
        : base(std::in_place, std::forward<U>(val)),
1570
3.05M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
3.05M
    {
1572
3.05M
    }
scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
1569
791k
        : base(std::in_place, std::forward<U>(val)),
1570
791k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
791k
    {
1572
791k
    }
scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
1569
7.36M
        : base(std::in_place, std::forward<U>(val)),
1570
7.36M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
7.36M
    {
1572
7.36M
    }
scn::v4::expected<char const*, scn::v4::scan_error>::expected<char const*, void>(char const*&&)
Line
Count
Source
1569
1.29M
        : base(std::in_place, std::forward<U>(val)),
1570
1.29M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
1.29M
    {
1572
1.29M
    }
scn::v4::expected<wchar_t const*, scn::v4::scan_error>::expected<wchar_t const*, void>(wchar_t const*&&)
Line
Count
Source
1569
14.7M
        : base(std::in_place, std::forward<U>(val)),
1570
14.7M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
14.7M
    {
1572
14.7M
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator&, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Line
Count
Source
1569
332k
        : base(std::in_place, std::forward<U>(val)),
1570
332k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
332k
    {
1572
332k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>&&)
Line
Count
Source
1569
271k
        : base(std::in_place, std::forward<U>(val)),
1570
271k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
271k
    {
1572
271k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator&, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v4::expected<char const*, scn::v4::impl::eof_error>::expected<char const*, void>(char const*&&)
Line
Count
Source
1569
547k
        : base(std::in_place, std::forward<U>(val)),
1570
547k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
547k
    {
1572
547k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
scn::v4::expected<std::__1::pair<char const*, long>, scn::v4::scan_error>::expected<std::__1::pair<char const*, long>, void>(std::__1::pair<char const*, long>&&)
Line
Count
Source
1569
447k
        : base(std::in_place, std::forward<U>(val)),
1570
447k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
447k
    {
1572
447k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::parse_error>::expected<char const*&, void>(char const*&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, void>(std::__1::pair<char const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::parse_error>::expected<char const*, void>(char const*&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, void>(scn::v4::impl::parse_integer_prefix_result<char const*>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, void>(scn::v4::impl::parse_integer_prefix_result<char const*>&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v4::expected<long, scn::v4::scan_error>::expected<long, void>(long&&)
Line
Count
Source
1569
10.0M
        : base(std::in_place, std::forward<U>(val)),
1570
10.0M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
10.0M
    {
1572
10.0M
    }
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, void>(std::__1::pair<char const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::scan_error>::expected<char const*&, void>(char const*&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
Unexecuted instantiation: scn::v4::expected<std::__1::regex_constants::syntax_option_type, scn::v4::scan_error>::expected<std::__1::regex_constants::syntax_option_type, void>(std::__1::regex_constants::syntax_option_type&&)
scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
1569
2.10k
        : base(std::in_place, std::forward<U>(val)),
1570
2.10k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
2.10k
    {
1572
2.10k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&)
scn::v4::expected<char const*, scn::v4::scan_error>::expected<char const* const&, void>(char const* const&)
Line
Count
Source
1569
4.20k
        : base(std::in_place, std::forward<U>(val)),
1570
4.20k
          ctor_base(detail::non_default_ctor_tag_t{})
1571
4.20k
    {
1572
4.20k
    }
scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Line
Count
Source
1569
3.07M
        : base(std::in_place, std::forward<U>(val)),
1570
3.07M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
3.07M
    {
1572
3.07M
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>&&)
Line
Count
Source
1569
2.46M
        : base(std::in_place, std::forward<U>(val)),
1570
2.46M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
2.46M
    {
1572
2.46M
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v4::expected<wchar_t const*, scn::v4::impl::eof_error>::expected<wchar_t const*, void>(wchar_t const*&&)
Line
Count
Source
1569
6.15M
        : base(std::in_place, std::forward<U>(val)),
1570
6.15M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
6.15M
    {
1572
6.15M
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
scn::v4::expected<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error>::expected<std::__1::pair<wchar_t const*, long>, void>(std::__1::pair<wchar_t const*, long>&&)
Line
Count
Source
1569
4.92M
        : base(std::in_place, std::forward<U>(val)),
1570
4.92M
          ctor_base(detail::non_default_ctor_tag_t{})
1571
4.92M
    {
1572
4.92M
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::expected<wchar_t const*&, void>(wchar_t const*&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, void>(std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::expected<wchar_t const*, void>(wchar_t const*&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, void>(scn::v4::impl::parse_integer_prefix_result<wchar_t const*>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, void>(scn::v4::impl::parse_integer_prefix_result<wchar_t const*>&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, void>(std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::scan_error>::expected<wchar_t const*&, void>(wchar_t const*&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
1569
264
        : base(std::in_place, std::forward<U>(val)),
1570
264
          ctor_base(detail::non_default_ctor_tag_t{})
1571
264
    {
1572
264
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&)
scn::v4::expected<wchar_t const*, scn::v4::scan_error>::expected<wchar_t const* const&, void>(wchar_t const* const&)
Line
Count
Source
1569
528
        : base(std::in_place, std::forward<U>(val)),
1570
528
          ctor_base(detail::non_default_ctor_tag_t{})
1571
528
    {
1572
528
    }
Unexecuted instantiation: scn::v4::expected<long, scn::v4::scan_error>::expected<int, void>(int&&)
Unexecuted instantiation: scn::v4::expected<wchar_t, scn::v4::scan_error>::expected<wchar_t, void>(wchar_t&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, void>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
1573
1574
    /// Construct an expected value directly in-place
1575
    template <typename... Args,
1576
              typename = std::enable_if_t<std::is_constructible_v<T, Args...>>>
1577
    explicit constexpr expected(std::in_place_t, Args&&... args) noexcept(
1578
        std::is_nothrow_constructible_v<base, std::in_place_t, Args&&...>)
1579
        : base(std::in_place, std::forward<Args>(args)...),
1580
          ctor_base(detail::non_default_ctor_tag_t{})
1581
    {
1582
    }
1583
1584
    template <typename G = E,
1585
              std::enable_if_t<std::is_constructible_v<E, const G&>>* = nullptr,
1586
              std::enable_if_t<!std::is_convertible_v<const G&, E>>* = nullptr>
1587
    explicit constexpr expected(const unexpected<G>& e) noexcept(
1588
        std::is_nothrow_constructible_v<base, unexpect_t, const G&>)
1589
        : base(unexpect, e.error()), ctor_base(detail::non_default_ctor_tag_t{})
1590
    {
1591
    }
1592
    template <typename G = E,
1593
              std::enable_if_t<std::is_constructible_v<E, const G&>>* = nullptr,
1594
              std::enable_if_t<std::is_convertible_v<const G&, E>>* = nullptr>
1595
    SCN_IMPLICIT constexpr expected(const unexpected<G>& e) noexcept(
1596
        std::is_nothrow_constructible_v<base, unexpect_t, const G&>)
1597
        : base(unexpect, e.error()), ctor_base(detail::non_default_ctor_tag_t{})
1598
    {
1599
    }
1600
1601
    template <typename G = E,
1602
              std::enable_if_t<std::is_constructible_v<E, G&&>>* = nullptr,
1603
              std::enable_if_t<!std::is_convertible_v<G&&, E>>* = nullptr>
1604
    explicit constexpr expected(unexpected<G>&& e) noexcept(
1605
        std::is_nothrow_constructible_v<base, unexpect_t, G&&>)
1606
        : base(unexpect, std::move(e.error())),
1607
          ctor_base(detail::non_default_ctor_tag_t{})
1608
    {
1609
    }
1610
    template <typename G = E,
1611
              std::enable_if_t<std::is_constructible_v<E, G&&>>* = nullptr,
1612
              std::enable_if_t<std::is_convertible_v<G&&, E>>* = nullptr>
1613
    SCN_IMPLICIT constexpr expected(unexpected<G>&& e) noexcept(
1614
        std::is_nothrow_constructible_v<base, unexpect_t, G&&>)
1615
1.52M
        : base(unexpect, std::move(e.error())),
1616
1.52M
          ctor_base(detail::non_default_ctor_tag_t{})
1617
1.52M
    {
1618
1.52M
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEENS0_10scan_errorEEC2ISI_TnPNSA_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
Line
Count
Source
1615
31.0k
        : base(unexpect, std::move(e.error())),
1616
31.0k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
31.0k
    {
1618
31.0k
    }
_ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKcS7_EENS0_10scan_errorEEC2IS9_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S9_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Line
Count
Source
1615
62.0k
        : base(unexpect, std::move(e.error())),
1616
62.0k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
62.0k
    {
1618
62.0k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__117basic_string_viewIcNSA_11char_traitsIcEEEEEEENS0_10scan_errorEEC2ISG_TnPNSA_9enable_ifIXsr3stdE18is_constructible_vISG_OT_EEvE4typeELPv0ETnPNSJ_IXsr3stdE16is_convertible_vISL_SG_EEvE4typeELSP_0EEEONS0_10unexpectedISK_EE
Line
Count
Source
1615
31.0k
        : base(unexpect, std::move(e.error())),
1616
31.0k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
31.0k
    {
1618
31.0k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEJNS7_12basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEEEENS0_10scan_errorEEC2ISN_TnPNS7_9enable_ifIXsr3stdE18is_constructible_vISN_OT_EEvE4typeELPv0ETnPNSQ_IXsr3stdE16is_convertible_vISS_SN_EEvE4typeELSW_0EEEONS0_10unexpectedISR_EE
Line
Count
Source
1615
31.0k
        : base(unexpect, std::move(e.error())),
1616
31.0k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
31.0k
    {
1618
31.0k
    }
_ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EENS0_10scan_errorEEC2ISF_TnPNS6_9enable_ifIXsr3stdE18is_constructible_vISF_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SF_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
Line
Count
Source
1615
31.0k
        : base(unexpect, std::move(e.error())),
1616
31.0k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
31.0k
    {
1618
31.0k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIwNSA_11char_traitsIwEENSA_9allocatorIwEEEEEEENS0_10scan_errorEEC2ISI_TnPNSA_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
Line
Count
Source
1615
62.0k
        : base(unexpect, std::move(e.error())),
1616
62.0k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
62.0k
    {
1618
62.0k
    }
_ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKwS7_EENS0_10scan_errorEEC2IS9_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S9_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Line
Count
Source
1615
124k
        : base(unexpect, std::move(e.error())),
1616
124k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
124k
    {
1618
124k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__117basic_string_viewIwNSA_11char_traitsIwEEEEEEENS0_10scan_errorEEC2ISG_TnPNSA_9enable_ifIXsr3stdE18is_constructible_vISG_OT_EEvE4typeELPv0ETnPNSJ_IXsr3stdE16is_convertible_vISL_SG_EEvE4typeELSP_0EEEONS0_10unexpectedISK_EE
Line
Count
Source
1615
62.0k
        : base(unexpect, std::move(e.error())),
1616
62.0k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
62.0k
    {
1618
62.0k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEJNS7_12basic_stringIwNS7_11char_traitsIwEENS7_9allocatorIwEEEEEEENS0_10scan_errorEEC2ISN_TnPNS7_9enable_ifIXsr3stdE18is_constructible_vISN_OT_EEvE4typeELPv0ETnPNSQ_IXsr3stdE16is_convertible_vISS_SN_EEvE4typeELSW_0EEEONS0_10unexpectedISR_EE
Line
Count
Source
1615
62.0k
        : base(unexpect, std::move(e.error())),
1616
62.0k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
62.0k
    {
1618
62.0k
    }
_ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS8_PKS9_lLl1024EEESD_EENS0_10scan_errorEEC2ISF_TnPNS6_9enable_ifIXsr3stdE18is_constructible_vISF_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SF_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
Line
Count
Source
1615
62.0k
        : base(unexpect, std::move(e.error())),
1616
62.0k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
62.0k
    {
1618
62.0k
    }
_ZN3scn2v48expectedIlNS0_10scan_errorEEC2IS2_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS2_OT_EEvE4typeELPv0ETnPNS6_IXsr3stdE16is_convertible_vIS8_S2_EEvE4typeELSC_0EEEONS0_10unexpectedIS7_EE
Line
Count
Source
1615
279k
        : base(unexpect, std::move(e.error())),
1616
279k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
279k
    {
1618
279k
    }
_ZN3scn2v48expectedIPKcNS0_10scan_errorEEC2IS4_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS4_OT_EEvE4typeELPv0ETnPNS8_IXsr3stdE16is_convertible_vISA_S4_EEvE4typeELSE_0EEEONS0_10unexpectedIS9_EE
Line
Count
Source
1615
68.8k
        : base(unexpect, std::move(e.error())),
1616
68.8k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
68.8k
    {
1618
68.8k
    }
_ZN3scn2v48expectedIPKwNS0_10scan_errorEEC2IS4_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS4_OT_EEvE4typeELPv0ETnPNS8_IXsr3stdE16is_convertible_vISA_S4_EEvE4typeELSE_0EEEONS0_10unexpectedIS9_EE
Line
Count
Source
1615
138k
        : base(unexpect, std::move(e.error())),
1616
138k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
138k
    {
1618
138k
    }
_ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_10scan_errorEEC2IS6_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS6_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S6_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
Line
Count
Source
1615
33.8k
        : base(unexpect, std::move(e.error())),
1616
33.8k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
33.8k
    {
1618
33.8k
    }
_ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_10scan_errorEEC2IS6_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS6_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S6_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
Line
Count
Source
1615
69.4k
        : base(unexpect, std::move(e.error())),
1616
69.4k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
69.4k
    {
1618
69.4k
    }
_ZN3scn2v48expectedIvNS0_10scan_errorEEC2IS2_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS2_OT_EEvE4typeELPv0ETnPNS6_IXsr3stdE16is_convertible_vIS8_S2_EEvE4typeELSC_0EEEONS0_10unexpectedIS7_EE
Line
Count
Source
1615
343k
        : base(unexpect, std::move(e.error())),
1616
343k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
343k
    {
1618
343k
    }
_ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
Line
Count
Source
1615
4.49k
        : base(unexpect, std::move(e.error())),
1616
4.49k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
4.49k
    {
1618
4.49k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISL_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISL_OT_EEvE4typeELPv0ETnPNSP_IXsr3stdE16is_convertible_vISR_SL_EEvE4typeELSV_0EEEONS0_10unexpectedISQ_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEEC2ISF_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISF_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SF_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
_ZN3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorElEENS0_10scan_errorEEC2IS9_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S9_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Line
Count
Source
1615
1.95k
        : base(unexpect, std::move(e.error())),
1616
1.95k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
1.95k
    {
1618
1.95k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEC2INSC_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSH_IXsr3stdE16is_convertible_vISJ_SC_EEvE4typeELSN_0EEEONS0_10unexpectedISI_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEC2ISG_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISG_OT_EEvE4typeELPv0ETnPNSJ_IXsr3stdE16is_convertible_vISL_SG_EEvE4typeELSP_0EEEONS0_10unexpectedISK_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEC2ISE_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISE_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SE_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESJ_EEENS0_10scan_errorEEC2ISL_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISL_OT_EEvE4typeELPv0ETnPNSO_IXsr3stdE16is_convertible_vISQ_SL_EEvE4typeELSU_0EEEONS0_10unexpectedISP_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEC2INS7_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S7_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEC2ISB_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SB_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEEC2IS9_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S9_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESD_EEENS0_10scan_errorEEC2ISF_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISF_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SF_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
_ZN3scn2v48expectedIPKcNS0_4impl9eof_errorEEC2IS5_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNS9_IXsr3stdE16is_convertible_vISB_S5_EEvE4typeELSF_0EEEONS0_10unexpectedISA_EE
Line
Count
Source
1615
6.74k
        : base(unexpect, std::move(e.error())),
1616
6.74k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
6.74k
    {
1618
6.74k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISI_TnPNS9_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EElEENS0_10scan_errorEEC2ISB_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SB_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
_ZN3scn2v48expectedINSt3__14pairIPKclEENS0_10scan_errorEEC2IS7_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S7_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
Line
Count
Source
1615
2.69k
        : base(unexpect, std::move(e.error())),
1616
2.69k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
2.69k
    {
1618
2.69k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS0_10scan_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEEC2INS8_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S8_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEEC2ISC_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSF_IXsr3stdE16is_convertible_vISH_SC_EEvE4typeELSL_0EEEONS0_10unexpectedISG_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEEC2ISA_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISA_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SA_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESF_EEENS0_10scan_errorEEC2ISH_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISH_OT_EEvE4typeELPv0ETnPNSK_IXsr3stdE16is_convertible_vISM_SH_EEvE4typeELSQ_0EEEONS0_10unexpectedISL_EE
Unexecuted instantiation: _ZN3scn2v48expectedIPKcNS0_4impl11parse_errorEEC2IS5_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNS9_IXsr3stdE16is_convertible_vISB_S5_EEvE4typeELSF_0EEEONS0_10unexpectedISA_EE
Unexecuted instantiation: _ZN3scn2v48expectedIPKcNS0_4impl11parse_errorEEC2INS5_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S5_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEEC2IS9_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S9_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJPKcNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESB_EEENS0_10scan_errorEEC2ISD_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISD_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SD_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__115regex_constants18syntax_option_typeENS0_10scan_errorEEC2IS5_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNS8_IXsr3stdE16is_convertible_vISA_S5_EEvE4typeELSE_0EEEONS0_10unexpectedIS9_EE
_ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
Line
Count
Source
1615
5.21k
        : base(unexpect, std::move(e.error())),
1616
5.21k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
5.21k
    {
1618
5.21k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISL_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISL_OT_EEvE4typeELPv0ETnPNSP_IXsr3stdE16is_convertible_vISR_SL_EEvE4typeELSV_0EEEONS0_10unexpectedISQ_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEEC2ISF_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISF_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SF_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
_ZN3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorElEENS0_10scan_errorEEC2IS9_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S9_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Line
Count
Source
1615
2.08k
        : base(unexpect, std::move(e.error())),
1616
2.08k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
2.08k
    {
1618
2.08k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEC2INSC_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSH_IXsr3stdE16is_convertible_vISJ_SC_EEvE4typeELSN_0EEEONS0_10unexpectedISI_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEC2ISG_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISG_OT_EEvE4typeELPv0ETnPNSJ_IXsr3stdE16is_convertible_vISL_SG_EEvE4typeELSP_0EEEONS0_10unexpectedISK_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEC2ISE_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISE_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SE_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSE_IcNSF_IcEENSH_IcEEEEEEENS0_10scan_errorEEC2ISO_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISO_OT_EEvE4typeELPv0ETnPNSR_IXsr3stdE16is_convertible_vIST_SO_EEvE4typeELSX_0EEEONS0_10unexpectedISS_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEC2INS7_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S7_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEC2ISB_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SB_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEEC2IS9_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S9_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS8_IcNS9_IcEENSB_IcEEEEEEENS0_10scan_errorEEC2ISI_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
_ZN3scn2v48expectedIPKwNS0_4impl9eof_errorEEC2IS5_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNS9_IXsr3stdE16is_convertible_vISB_S5_EEvE4typeELSF_0EEEONS0_10unexpectedISA_EE
Line
Count
Source
1615
10.4k
        : base(unexpect, std::move(e.error())),
1616
10.4k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
10.4k
    {
1618
10.4k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISI_TnPNS9_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EElEENS0_10scan_errorEEC2ISB_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SB_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
_ZN3scn2v48expectedINSt3__14pairIPKwlEENS0_10scan_errorEEC2IS7_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S7_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
Line
Count
Source
1615
4.17k
        : base(unexpect, std::move(e.error())),
1616
4.17k
          ctor_base(detail::non_default_ctor_tag_t{})
1617
4.17k
    {
1618
4.17k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS0_10scan_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEEC2INS8_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S8_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEEC2ISC_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSF_IXsr3stdE16is_convertible_vISH_SC_EEvE4typeELSL_0EEEONS0_10unexpectedISG_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEEC2ISA_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISA_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SA_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSA_IcNSB_IcEENSD_IcEEEEEEENS0_10scan_errorEEC2ISK_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISK_OT_EEvE4typeELPv0ETnPNSN_IXsr3stdE16is_convertible_vISP_SK_EEvE4typeELST_0EEEONS0_10unexpectedISO_EE
Unexecuted instantiation: _ZN3scn2v48expectedIPKwNS0_4impl11parse_errorEEC2IS5_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNS9_IXsr3stdE16is_convertible_vISB_S5_EEvE4typeELSF_0EEEONS0_10unexpectedISA_EE
Unexecuted instantiation: _ZN3scn2v48expectedIPKwNS0_4impl11parse_errorEEC2INS5_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S5_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEEC2IS9_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S9_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJPKwNS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS6_IcNS7_IcEENS9_IcEEEEEEENS0_10scan_errorEEC2ISG_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISG_OT_EEvE4typeELPv0ETnPNSJ_IXsr3stdE16is_convertible_vISL_SG_EEvE4typeELSP_0EEEONS0_10unexpectedISK_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISI_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSM_IXsr3stdE16is_convertible_vISO_SI_EEvE4typeELSS_0EEEONS0_10unexpectedISN_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISI_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSM_IXsr3stdE16is_convertible_vISO_SI_EEvE4typeELSS_0EEEONS0_10unexpectedISN_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEENS0_10scan_errorEEC2ISL_TnPNSD_9enable_ifIXsr3stdE18is_constructible_vISL_OT_EEvE4typeELPv0ETnPNSO_IXsr3stdE16is_convertible_vISQ_SL_EEvE4typeELSU_0EEEONS0_10unexpectedISP_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEESA_EEJdEEENS0_10scan_errorEEC2ISD_TnPNS7_9enable_ifIXsr3stdE18is_constructible_vISD_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SD_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEES9_EENS0_10scan_errorEEC2ISB_TnPNS6_9enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SB_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEENS0_10scan_errorEEC2ISL_TnPNSD_9enable_ifIXsr3stdE18is_constructible_vISL_OT_EEvE4typeELPv0ETnPNSO_IXsr3stdE16is_convertible_vISQ_SL_EEvE4typeELSU_0EEEONS0_10unexpectedISP_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEENS0_10scan_errorEEC2ISI_TnPNSA_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
1619
1620
    /// Construct an unexpected value directly in-place
1621
    template <typename... Args,
1622
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
1623
    explicit constexpr expected(unexpect_t, Args&&... args) noexcept(
1624
        std::is_nothrow_constructible_v<base, unexpect_t, Args&&...>)
1625
26.8k
        : base(unexpect, std::forward<Args>(args)...),
1626
26.8k
          ctor_base(detail::non_default_ctor_tag_t{})
1627
26.8k
    {
1628
26.8k
    }
scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
1625
4.49k
        : base(unexpect, std::forward<Args>(args)...),
1626
4.49k
          ctor_base(detail::non_default_ctor_tag_t{})
1627
4.49k
    {
1628
4.49k
    }
scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
1625
5.21k
        : base(unexpect, std::forward<Args>(args)...),
1626
5.21k
          ctor_base(detail::non_default_ctor_tag_t{})
1627
5.21k
    {
1628
5.21k
    }
scn::v4::expected<char const*, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
1625
6.74k
        : base(unexpect, std::forward<Args>(args)...),
1626
6.74k
          ctor_base(detail::non_default_ctor_tag_t{})
1627
6.74k
    {
1628
6.74k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::expected<wchar_t const*, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
1625
10.4k
        : base(unexpect, std::forward<Args>(args)...),
1626
10.4k
          ctor_base(detail::non_default_ctor_tag_t{})
1627
10.4k
    {
1628
10.4k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
1629
1630
    template <
1631
        typename U,
1632
        typename G,
1633
        std::enable_if_t<!(std::is_convertible_v<const U&, T> &&
1634
                           std::is_convertible_v<const G&, E>)>* = nullptr,
1635
        detail::enable_from_other<T, E, U, G, const U&, const G&>* = nullptr>
1636
    explicit constexpr expected(const expected<U, G>& other) noexcept(
1637
        std::is_nothrow_constructible_v<T, const U&> &&
1638
        std::is_nothrow_constructible_v<E, const G&>)
1639
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1640
    {
1641
        if (other.has_value()) {
1642
            this->construct(*other);
1643
        }
1644
        else {
1645
            this->construct_unexpected(other.error());
1646
        }
1647
    }
1648
    template <
1649
        typename U,
1650
        typename G,
1651
        std::enable_if_t<(std::is_convertible_v<const U&, T> &&
1652
                          std::is_convertible_v<const G&, E>)>* = nullptr,
1653
        detail::enable_from_other<T, E, U, G, const U&, const G&>* = nullptr>
1654
    constexpr expected(const expected<U, G>& other) noexcept(
1655
        std::is_nothrow_constructible_v<T, const U&> &&
1656
        std::is_nothrow_constructible_v<E, const G&>)
1657
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1658
    {
1659
        if (other.has_value()) {
1660
            this->construct(*other);
1661
        }
1662
        else {
1663
            this->construct_unexpected(other.error());
1664
        }
1665
    }
1666
1667
    template <typename U,
1668
              typename G,
1669
              std::enable_if_t<!(std::is_convertible_v<U&&, T> &&
1670
                                 std::is_convertible_v<G&&, E>)>* = nullptr,
1671
              detail::enable_from_other<T, E, U, G, U&&, G&&>* = nullptr>
1672
    explicit constexpr expected(expected<U, G>&& other) noexcept(
1673
        std::is_nothrow_constructible_v<T, U&&> &&
1674
        std::is_nothrow_constructible_v<E, G&&>)
1675
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1676
    {
1677
        if (other.has_value()) {
1678
            this->construct(std::move(*other));
1679
        }
1680
        else {
1681
            this->construct_unexpected(std::move(other.error()));
1682
        }
1683
    }
1684
    template <typename U,
1685
              typename G,
1686
              std::enable_if_t<(std::is_convertible_v<U&&, T> &&
1687
                                std::is_convertible_v<G&&, E>)>* = nullptr,
1688
              detail::enable_from_other<T, E, U, G, U&&, G&&>* = nullptr>
1689
    constexpr expected(expected<U, G>&& other) noexcept(
1690
        std::is_nothrow_constructible_v<T, U&&> &&
1691
        std::is_nothrow_constructible_v<E, G&&>)
1692
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1693
    {
1694
        if (other.has_value()) {
1695
            this->construct(std::move(*other));
1696
        }
1697
        else {
1698
            this->construct_unexpected(std::move(other.error()));
1699
        }
1700
    }
1701
1702
    template <typename U = value_type,
1703
              typename = std::enable_if_t<std::is_convertible_v<U, value_type>>>
1704
    expected& operator=(U&& val) noexcept(
1705
        noexcept(assign_value(std::forward<U>(val))))
1706
    {
1707
        assign_value(std::forward<U>(val));
1708
        return *this;
1709
    }
1710
1711
    expected& operator=(const unexpected_type& unex) noexcept(
1712
        noexcept(assign_unexpected(unex)))
1713
    {
1714
        assign_unexpected(unex);
1715
        return *this;
1716
    }
1717
    expected& operator=(unexpected_type&& unex) noexcept(
1718
        noexcept(assign_unexpected(std::move(unex))))
1719
    {
1720
        assign_unexpected(std::move(unex));
1721
        return *this;
1722
    }
1723
1724
    /// Destroys the contained value, and then initializes the expected
1725
    /// value directly in-place.
1726
    template <typename... Args,
1727
              std::enable_if_t<std::is_constructible_v<T, Args...>>* = nullptr>
1728
    decltype(auto) emplace(Args&&... args) noexcept(
1729
        std::is_nothrow_constructible_v<T, Args...>)
1730
    {
1731
        emplace_impl(std::forward<Args>(args)...);
1732
        if constexpr (!std::is_void_v<T>) {
1733
            return this->get_value();
1734
        }
1735
    }
1736
1737
    using base::has_value;
1738
    constexpr explicit operator bool() const noexcept
1739
99.0M
    {
1740
99.0M
        return has_value();
1741
99.0M
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
597k
    {
1740
597k
        return has_value();
1741
597k
    }
scn::v4::expected<long, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
13.7M
    {
1740
13.7M
        return has_value();
1741
13.7M
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
298k
    {
1740
298k
        return has_value();
1741
298k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
298k
    {
1740
298k
        return has_value();
1741
298k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
357k
    {
1740
357k
        return has_value();
1741
357k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
357k
    {
1740
357k
        return has_value();
1741
357k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
6.24M
    {
1740
6.24M
        return has_value();
1741
6.24M
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
3.12M
    {
1740
3.12M
        return has_value();
1741
3.12M
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
3.12M
    {
1740
3.12M
        return has_value();
1741
3.12M
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
3.12M
    {
1740
3.12M
        return has_value();
1741
3.12M
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
3.12M
    {
1740
3.12M
        return has_value();
1741
3.12M
    }
Unexecuted instantiation: scn::v4::expected<std::__1::regex_constants::syntax_option_type, scn::v4::scan_error>::operator bool() const
scn::v4::expected<void, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
31.9M
    {
1740
31.9M
        return has_value();
1741
31.9M
    }
Unexecuted instantiation: scn::v4::expected<wchar_t, scn::v4::scan_error>::operator bool() const
scn::v4::expected<char const*, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
1.37M
    {
1740
1.37M
        return has_value();
1741
1.37M
    }
scn::v4::expected<wchar_t const*, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
14.8M
    {
1740
14.8M
        return has_value();
1741
14.8M
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::operator bool() const
scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
273k
    {
1740
273k
        return has_value();
1741
273k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
831k
    {
1740
831k
        return has_value();
1741
831k
    }
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error>::operator bool() const
scn::v4::expected<std::__1::pair<char const*, long>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
450k
    {
1740
450k
        return has_value();
1741
450k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::operator bool() const
scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
2.46M
    {
1740
2.46M
        return has_value();
1741
2.46M
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
7.43M
    {
1740
7.43M
        return has_value();
1741
7.43M
    }
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error>::operator bool() const
scn::v4::expected<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1739
4.92M
    {
1740
4.92M
        return has_value();
1741
4.92M
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
1742
1743
    /// Get the unexpected value, if one is contained in *this
1744
    constexpr error_type& error() & noexcept
1745
1.16M
    {
1746
1.16M
        SCN_EXPECT(!has_value());
1747
1.16M
        return this->get_unexpected().error();
1748
1.16M
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error>::error() &
Line
Count
Source
1745
62.0k
    {
1746
62.0k
        SCN_EXPECT(!has_value());
1747
62.0k
        return this->get_unexpected().error();
1748
62.0k
    }
scn::v4::expected<long, scn::v4::scan_error>::error() &
Line
Count
Source
1745
279k
    {
1746
279k
        SCN_EXPECT(!has_value());
1747
279k
        return this->get_unexpected().error();
1748
279k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, scn::v4::scan_error>::error() &
Line
Count
Source
1745
31.0k
    {
1746
31.0k
        SCN_EXPECT(!has_value());
1747
31.0k
        return this->get_unexpected().error();
1748
31.0k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::error() &
Line
Count
Source
1745
124k
    {
1746
124k
        SCN_EXPECT(!has_value());
1747
124k
        return this->get_unexpected().error();
1748
124k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, scn::v4::scan_error>::error() &
Line
Count
Source
1745
62.0k
    {
1746
62.0k
        SCN_EXPECT(!has_value());
1747
62.0k
        return this->get_unexpected().error();
1748
62.0k
    }
scn::v4::expected<void, scn::v4::scan_error>::error() &
Line
Count
Source
1745
257k
    {
1746
257k
        SCN_EXPECT(!has_value());
1747
257k
        return this->get_unexpected().error();
1748
257k
    }
Unexecuted instantiation: scn::v4::expected<std::__1::regex_constants::syntax_option_type, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<wchar_t, scn::v4::scan_error>::error() &
scn::v4::expected<char const*, scn::v4::scan_error>::error() &
Line
Count
Source
1745
75.5k
    {
1746
75.5k
        SCN_EXPECT(!has_value());
1747
75.5k
        return this->get_unexpected().error();
1748
75.5k
    }
scn::v4::expected<wchar_t const*, scn::v4::scan_error>::error() &
Line
Count
Source
1745
149k
    {
1746
149k
        SCN_EXPECT(!has_value());
1747
149k
        return this->get_unexpected().error();
1748
149k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::error() &
scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error>::error() &
Line
Count
Source
1745
1.95k
    {
1746
1.95k
        SCN_EXPECT(!has_value());
1747
1.95k
        return this->get_unexpected().error();
1748
1.95k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::error() &
Line
Count
Source
1745
38.3k
    {
1746
38.3k
        SCN_EXPECT(!has_value());
1747
38.3k
        return this->get_unexpected().error();
1748
38.3k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error>::error() &
scn::v4::expected<std::__1::pair<char const*, long>, scn::v4::scan_error>::error() &
Line
Count
Source
1745
2.69k
    {
1746
2.69k
        SCN_EXPECT(!has_value());
1747
2.69k
        return this->get_unexpected().error();
1748
2.69k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::error() &
scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error>::error() &
Line
Count
Source
1745
2.08k
    {
1746
2.08k
        SCN_EXPECT(!has_value());
1747
2.08k
        return this->get_unexpected().error();
1748
2.08k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::error() &
Line
Count
Source
1745
74.6k
    {
1746
74.6k
        SCN_EXPECT(!has_value());
1747
74.6k
        return this->get_unexpected().error();
1748
74.6k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error>::error() &
scn::v4::expected<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error>::error() &
Line
Count
Source
1745
4.17k
    {
1746
4.17k
        SCN_EXPECT(!has_value());
1747
4.17k
        return this->get_unexpected().error();
1748
4.17k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
1749
    constexpr const error_type& error() const& noexcept
1750
0
    {
1751
0
        SCN_EXPECT(!has_value());
1752
0
        return this->get_unexpected().error();
1753
0
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
1754
    constexpr error_type&& error() && noexcept
1755
26.8k
    {
1756
26.8k
        SCN_EXPECT(!has_value());
1757
26.8k
        return std::move(this->get_unexpected().error());
1758
26.8k
    }
Unexecuted instantiation: scn::v4::expected<void, scn::v4::scan_error>::error() &&
scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error>::error() &&
Line
Count
Source
1755
4.49k
    {
1756
4.49k
        SCN_EXPECT(!has_value());
1757
4.49k
        return std::move(this->get_unexpected().error());
1758
4.49k
    }
scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error>::error() &&
Line
Count
Source
1755
5.21k
    {
1756
5.21k
        SCN_EXPECT(!has_value());
1757
5.21k
        return std::move(this->get_unexpected().error());
1758
5.21k
    }
scn::v4::expected<char const*, scn::v4::impl::eof_error>::error() &&
Line
Count
Source
1755
6.74k
    {
1756
6.74k
        SCN_EXPECT(!has_value());
1757
6.74k
        return std::move(this->get_unexpected().error());
1758
6.74k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error>::error() &&
scn::v4::expected<wchar_t const*, scn::v4::impl::eof_error>::error() &&
Line
Count
Source
1755
10.4k
    {
1756
10.4k
        SCN_EXPECT(!has_value());
1757
10.4k
        return std::move(this->get_unexpected().error());
1758
10.4k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
1759
    constexpr const error_type&& error() const&& noexcept
1760
    {
1761
        SCN_EXPECT(!has_value());
1762
        return std::move(this->get_unexpected().error());
1763
    }
1764
1765
    /// Get the expected value, if one is contained in *this
1766
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1767
    constexpr U& value() & noexcept
1768
96.2M
    {
1769
96.2M
        SCN_EXPECT(has_value());
1770
96.2M
        return this->get_value();
1771
96.2M
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKcS7_EENS0_10scan_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Line
Count
Source
1768
535k
    {
1769
535k
        SCN_EXPECT(has_value());
1770
535k
        return this->get_value();
1771
535k
    }
_ZNR3scn2v48expectedIlNS0_10scan_errorEE5valueIlTnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS7_v
Line
Count
Source
1768
13.4M
    {
1769
13.4M
        SCN_EXPECT(has_value());
1770
13.4M
        return this->get_value();
1771
13.4M
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEENS0_10scan_errorEE5valueISH_TnPNSA_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Line
Count
Source
1768
833k
    {
1769
833k
        SCN_EXPECT(has_value());
1770
833k
        return this->get_value();
1771
833k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__117basic_string_viewIcNSA_11char_traitsIcEEEEEEENS0_10scan_errorEE5valueISF_TnPNSA_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Line
Count
Source
1768
833k
    {
1769
833k
        SCN_EXPECT(has_value());
1770
833k
        return this->get_value();
1771
833k
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EENS0_10scan_errorEE5valueISE_TnPNS6_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Line
Count
Source
1768
326k
    {
1769
326k
        SCN_EXPECT(has_value());
1770
326k
        return this->get_value();
1771
326k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEJNS7_12basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEEEENS0_10scan_errorEE5valueISM_TnPNS7_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSR_v
Line
Count
Source
1768
1.01M
    {
1769
1.01M
        SCN_EXPECT(has_value());
1770
1.01M
        return this->get_value();
1771
1.01M
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKwS7_EENS0_10scan_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Line
Count
Source
1768
6.11M
    {
1769
6.11M
        SCN_EXPECT(has_value());
1770
6.11M
        return this->get_value();
1771
6.11M
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIwNSA_11char_traitsIwEENSA_9allocatorIwEEEEEEENS0_10scan_errorEE5valueISH_TnPNSA_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Line
Count
Source
1768
9.23M
    {
1769
9.23M
        SCN_EXPECT(has_value());
1770
9.23M
        return this->get_value();
1771
9.23M
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__117basic_string_viewIwNSA_11char_traitsIwEEEEEEENS0_10scan_errorEE5valueISF_TnPNSA_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Line
Count
Source
1768
9.23M
    {
1769
9.23M
        SCN_EXPECT(has_value());
1770
9.23M
        return this->get_value();
1771
9.23M
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS8_PKS9_lLl1024EEESD_EENS0_10scan_errorEE5valueISE_TnPNS6_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Line
Count
Source
1768
3.05M
    {
1769
3.05M
        SCN_EXPECT(has_value());
1770
3.05M
        return this->get_value();
1771
3.05M
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEJNS7_12basic_stringIwNS7_11char_traitsIwEENS7_9allocatorIwEEEEEEENS0_10scan_errorEE5valueISM_TnPNS7_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSR_v
Line
Count
Source
1768
9.23M
    {
1769
9.23M
        SCN_EXPECT(has_value());
1770
9.23M
        return this->get_value();
1771
9.23M
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__115regex_constants18syntax_option_typeENS0_10scan_errorEE5valueIS4_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS9_v
Unexecuted instantiation: _ZNR3scn2v48expectedIwNS0_10scan_errorEE5valueIwTnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS7_v
_ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Line
Count
Source
1768
332k
    {
1769
332k
        SCN_EXPECT(has_value());
1770
332k
        return this->get_value();
1771
332k
    }
_ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Line
Count
Source
1768
3.07M
    {
1769
3.07M
        SCN_EXPECT(has_value());
1770
3.07M
        return this->get_value();
1771
3.07M
    }
_ZNR3scn2v48expectedIPKcNS0_10scan_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS9_v
Line
Count
Source
1768
1.30M
    {
1769
1.30M
        SCN_EXPECT(has_value());
1770
1.30M
        return this->get_value();
1771
1.30M
    }
_ZNR3scn2v48expectedIPKwNS0_10scan_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS9_v
Line
Count
Source
1768
14.7M
    {
1769
14.7M
        SCN_EXPECT(has_value());
1770
14.7M
        return this->get_value();
1771
14.7M
    }
_ZNR3scn2v48expectedIPKcNS0_4impl9eof_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Line
Count
Source
1768
547k
    {
1769
547k
        SCN_EXPECT(has_value());
1770
547k
        return this->get_value();
1771
547k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEE5valueISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
_ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorElEENS0_10scan_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Line
Count
Source
1768
271k
    {
1769
271k
        SCN_EXPECT(has_value());
1770
271k
        return this->get_value();
1771
271k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS0_10scan_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESJ_EEENS0_10scan_errorEE5valueISK_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSP_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS0_10scan_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESD_EEENS0_10scan_errorEE5valueISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
_ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_10scan_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
Line
Count
Source
1768
793k
    {
1769
793k
        SCN_EXPECT(has_value());
1770
793k
        return this->get_value();
1771
793k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EElEENS0_10scan_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
_ZNR3scn2v48expectedINSt3__14pairIPKclEENS0_10scan_errorEE5valueIS6_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
Line
Count
Source
1768
447k
    {
1769
447k
        SCN_EXPECT(has_value());
1770
447k
        return this->get_value();
1771
447k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS0_10scan_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESF_EEENS0_10scan_errorEE5valueISG_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSL_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS0_10scan_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedIPKcNS0_4impl11parse_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS0_10scan_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJPKcNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESB_EEENS0_10scan_errorEE5valueISC_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS0_10scan_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS0_10scan_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS0_10scan_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS0_10scan_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEE5valueISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
_ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorElEENS0_10scan_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Line
Count
Source
1768
2.46M
    {
1769
2.46M
        SCN_EXPECT(has_value());
1770
2.46M
        return this->get_value();
1771
2.46M
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS0_10scan_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSE_IcNSF_IcEENSH_IcEEEEEEENS0_10scan_errorEE5valueISN_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSS_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS0_10scan_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS8_IcNS9_IcEENSB_IcEEEEEEENS0_10scan_errorEE5valueISH_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
_ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_10scan_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
Line
Count
Source
1768
7.36M
    {
1769
7.36M
        SCN_EXPECT(has_value());
1770
7.36M
        return this->get_value();
1771
7.36M
    }
_ZNR3scn2v48expectedIPKwNS0_4impl9eof_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Line
Count
Source
1768
6.15M
    {
1769
6.15M
        SCN_EXPECT(has_value());
1770
6.15M
        return this->get_value();
1771
6.15M
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EElEENS0_10scan_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
_ZNR3scn2v48expectedINSt3__14pairIPKwlEENS0_10scan_errorEE5valueIS6_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
Line
Count
Source
1768
4.92M
    {
1769
4.92M
        SCN_EXPECT(has_value());
1770
4.92M
        return this->get_value();
1771
4.92M
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS0_10scan_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSA_IcNSB_IcEENSD_IcEEEEEEENS0_10scan_errorEE5valueISJ_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSO_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS0_10scan_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedIPKwNS0_4impl11parse_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS0_10scan_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJPKwNS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS6_IcNS7_IcEENS9_IcEEEEEEENS0_10scan_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS0_10scan_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS0_10scan_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS0_10scan_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS0_10scan_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEENS0_10scan_errorEE5valueISK_TnPNSD_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSP_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEES9_EENS0_10scan_errorEE5valueISA_TnPNS6_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEESA_EEJdEEENS0_10scan_errorEE5valueISC_TnPNS7_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEENS0_10scan_errorEE5valueISK_TnPNSD_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSP_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEENS0_10scan_errorEE5valueISH_TnPNSA_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
1772
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1773
    constexpr const U& value() const& noexcept
1774
0
    {
1775
0
        SCN_EXPECT(has_value());
1776
0
        return this->get_value();
1777
0
    }
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKcNS0_4impl9eof_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSQ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSJ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSE_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSM_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSK_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSG_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKcNS0_4impl11parse_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSQ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSJ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSE_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSM_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKwNS0_4impl9eof_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSK_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSG_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKwNS0_4impl11parse_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSN_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSN_v
1778
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1779
    constexpr U&& value() && noexcept
1780
    {
1781
        SCN_EXPECT(has_value());
1782
        return std::move(this->get_value());
1783
    }
1784
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1785
    constexpr const U&& value() const&& noexcept
1786
    {
1787
        SCN_EXPECT(has_value());
1788
        return std::move(this->get_value());
1789
    }
1790
1791
    /// Get the expected value, if one is contained in *this
1792
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1793
    constexpr U& operator*() & noexcept
1794
27.4M
    {
1795
27.4M
        return value();
1796
27.4M
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKcS7_EENS0_10scan_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Line
Count
Source
1794
535k
    {
1795
535k
        return value();
1796
535k
    }
_ZNR3scn2v48expectedIlNS0_10scan_errorEEdeIlTnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS7_v
Line
Count
Source
1794
13.4M
    {
1795
13.4M
        return value();
1796
13.4M
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EENS0_10scan_errorEEdeISE_TnPNS6_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Line
Count
Source
1794
326k
    {
1795
326k
        return value();
1796
326k
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKwS7_EENS0_10scan_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Line
Count
Source
1794
6.11M
    {
1795
6.11M
        return value();
1796
6.11M
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS8_PKS9_lLl1024EEESD_EENS0_10scan_errorEEdeISE_TnPNS6_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Line
Count
Source
1794
3.05M
    {
1795
3.05M
        return value();
1796
3.05M
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedIPKcNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedIPKcNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
_ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_10scan_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
Line
Count
Source
1794
134k
    {
1795
134k
        return value();
1796
134k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS0_10scan_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
_ZNR3scn2v48expectedIPKcNS0_10scan_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS9_v
Line
Count
Source
1794
220k
    {
1795
220k
        return value();
1796
220k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedIPKwNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedIPKwNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
_ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_10scan_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
Line
Count
Source
1794
1.22M
    {
1795
1.22M
        return value();
1796
1.22M
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS0_10scan_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
_ZNR3scn2v48expectedIPKwNS0_10scan_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS9_v
Line
Count
Source
1794
2.44M
    {
1795
2.44M
        return value();
1796
2.44M
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEES9_EENS0_10scan_errorEEdeISA_TnPNS6_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
1797
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1798
    constexpr const U& operator*() const& noexcept
1799
0
    {
1800
0
        return value();
1801
0
    }
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKcNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSQ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSJ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSE_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSM_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSK_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSG_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKcNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSQ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSJ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSE_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSM_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKwNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSK_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSG_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKwNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSN_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSN_v
1802
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1803
    constexpr U&& operator*() && noexcept
1804
38.3M
    {
1805
38.3M
        return std::move(value());
1806
38.3M
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__115regex_constants18syntax_option_typeENS0_10scan_errorEEdeIS4_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOS9_v
Unexecuted instantiation: _ZNO3scn2v48expectedIwNS0_10scan_errorEEdeIwTnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOS7_v
_ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Line
Count
Source
1804
332k
    {
1805
332k
        return std::move(value());
1806
332k
    }
_ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Line
Count
Source
1804
3.07M
    {
1805
3.07M
        return std::move(value());
1806
3.07M
    }
_ZNO3scn2v48expectedIPKcNS0_10scan_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOS9_v
Line
Count
Source
1804
1.08M
    {
1805
1.08M
        return std::move(value());
1806
1.08M
    }
_ZNO3scn2v48expectedIPKwNS0_10scan_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOS9_v
Line
Count
Source
1804
12.2M
    {
1805
12.2M
        return std::move(value());
1806
12.2M
    }
_ZNO3scn2v48expectedIPKcNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSA_v
Line
Count
Source
1804
547k
    {
1805
547k
        return std::move(value());
1806
547k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSQ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS0_10scan_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSQ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEEdeISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
_ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorElEENS0_10scan_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Line
Count
Source
1804
271k
    {
1805
271k
        return std::move(value());
1806
271k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSK_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS0_10scan_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESJ_EEENS0_10scan_errorEEdeISK_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSP_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSE_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS0_10scan_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSE_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESD_EEENS0_10scan_errorEEdeISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
_ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_10scan_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSB_v
Line
Count
Source
1804
658k
    {
1805
658k
        return std::move(value());
1806
658k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSM_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS0_10scan_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSM_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EElEENS0_10scan_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
_ZNO3scn2v48expectedINSt3__14pairIPKclEENS0_10scan_errorEEdeIS6_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSB_v
Line
Count
Source
1804
447k
    {
1805
447k
        return std::move(value());
1806
447k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSG_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS0_10scan_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESF_EEENS0_10scan_errorEEdeISG_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSL_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS0_10scan_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS0_10scan_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJPKcNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESB_EEENS0_10scan_errorEEdeISC_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedIlNS0_10scan_errorEEdeIlTnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOS7_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS0_10scan_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSK_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS0_10scan_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS0_10scan_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSG_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS0_10scan_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSQ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS0_10scan_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSQ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEEdeISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
_ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorElEENS0_10scan_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Line
Count
Source
1804
2.46M
    {
1805
2.46M
        return std::move(value());
1806
2.46M
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSK_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS0_10scan_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSE_IcNSF_IcEENSH_IcEEEEEEENS0_10scan_errorEEdeISN_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSS_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSE_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS0_10scan_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSE_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS8_IcNS9_IcEENSB_IcEEEEEEENS0_10scan_errorEEdeISH_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSM_v
_ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_10scan_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSB_v
Line
Count
Source
1804
6.13M
    {
1805
6.13M
        return std::move(value());
1806
6.13M
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSM_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS0_10scan_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSM_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EElEENS0_10scan_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
_ZNO3scn2v48expectedIPKwNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSA_v
Line
Count
Source
1804
6.15M
    {
1805
6.15M
        return std::move(value());
1806
6.15M
    }
_ZNO3scn2v48expectedINSt3__14pairIPKwlEENS0_10scan_errorEEdeIS6_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSB_v
Line
Count
Source
1804
4.92M
    {
1805
4.92M
        return std::move(value());
1806
4.92M
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSG_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS0_10scan_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSA_IcNSB_IcEENSD_IcEEEEEEENS0_10scan_errorEEdeISJ_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSO_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS0_10scan_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedIPKwNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSA_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS0_10scan_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJPKwNS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS6_IcNS7_IcEENS9_IcEEEEEEENS0_10scan_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSK_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS0_10scan_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSK_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS0_10scan_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS0_10scan_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSG_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS0_10scan_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedIPKcNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSA_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSN_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS0_10scan_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSN_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSN_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS0_10scan_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSN_v
1807
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1808
    constexpr const U&& operator*() const&& noexcept
1809
    {
1810
        return std::move(value());
1811
    }
1812
1813
    constexpr value_type* operator->() noexcept
1814
30.3M
    {
1815
30.3M
        return &value();
1816
30.3M
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1814
833k
    {
1815
833k
        return &value();
1816
833k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1814
833k
    {
1815
833k
        return &value();
1816
833k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1814
1.01M
    {
1815
1.01M
        return &value();
1816
1.01M
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1814
9.23M
    {
1815
9.23M
        return &value();
1816
9.23M
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1814
9.23M
    {
1815
9.23M
        return &value();
1816
9.23M
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1814
9.23M
    {
1815
9.23M
        return &value();
1816
9.23M
    }
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator->()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>::operator->()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator->()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator->()
1817
    constexpr const value_type* operator->() const noexcept
1818
    {
1819
        return &value();
1820
    }
1821
1822
    /// Returns the expected value if *this contains one, otherwise
1823
    /// returns default_value
1824
    template <typename U,
1825
              typename = std::enable_if_t<std::is_copy_constructible_v<T> &&
1826
                                          std::is_convertible_v<U, T>>>
1827
    constexpr T value_or(U&& default_value) const& noexcept(
1828
        std::is_nothrow_copy_constructible_v<T> &&
1829
        std::is_nothrow_constructible_v<T, U&&>)
1830
    {
1831
        if (has_value()) {
1832
            return value();
1833
        }
1834
        return std::forward<U>(default_value);
1835
    }
1836
    template <typename U,
1837
              typename = std::enable_if_t<std::is_move_constructible_v<T> &&
1838
                                          std::is_convertible_v<U, T>>>
1839
    constexpr T value_or(U&& default_value) && noexcept(
1840
        std::is_nothrow_move_constructible_v<T> &&
1841
        std::is_nothrow_constructible_v<T, U&&>)
1842
    {
1843
        if (has_value()) {
1844
            return std::move(value());
1845
        }
1846
        return std::forward<U>(default_value);
1847
    }
1848
1849
    template <typename G,
1850
              typename = std::enable_if_t<std::is_copy_constructible_v<E> &&
1851
                                          std::is_convertible_v<G, E>>>
1852
    constexpr E error_or(G&& default_error) const& noexcept(
1853
        std::is_nothrow_copy_constructible_v<E> &&
1854
        std::is_nothrow_constructible_v<E, G&&>)
1855
    {
1856
        if (!has_value()) {
1857
            return error();
1858
        }
1859
        return std::forward<G>(default_error);
1860
    }
1861
    template <typename G,
1862
              typename = std::enable_if_t<std::is_move_constructible_v<E> &&
1863
                                          std::is_convertible_v<G, E>>>
1864
    constexpr E error_or(G&& default_error) && noexcept(
1865
        std::is_nothrow_move_constructible_v<E> &&
1866
        std::is_nothrow_constructible_v<E, G&&>)
1867
    {
1868
        if (!has_value()) {
1869
            return std::move(error());
1870
        }
1871
        return std::forward<G>(default_error);
1872
    }
1873
1874
    template <typename F>
1875
    constexpr auto and_then(F&& f) & noexcept(noexcept(
1876
        detail::and_then_impl(SCN_DECLVAL(expected&), std::forward<F>(f))))
1877
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1878
    {
1879
        return detail::and_then_impl(*this, std::forward<F>(f));
1880
    }
1881
    template <typename F>
1882
    constexpr auto and_then(F&& f) const& noexcept(
1883
        noexcept(detail::and_then_impl(SCN_DECLVAL(const expected&),
1884
                                       std::forward<F>(f))))
1885
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1886
    {
1887
        return detail::and_then_impl(*this, std::forward<F>(f));
1888
    }
1889
    template <typename F>
1890
    constexpr auto and_then(F&& f) && noexcept(noexcept(
1891
        detail::and_then_impl(SCN_DECLVAL(expected&&), std::forward<F>(f))))
1892
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1893
    {
1894
        return detail::and_then_impl(std::move(*this), std::forward<F>(f));
1895
    }
1896
    template <typename F>
1897
    constexpr auto and_then(F&& f) const&& noexcept(
1898
        noexcept(detail::and_then_impl(SCN_DECLVAL(const expected&&),
1899
                                       std::forward<F>(f))))
1900
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1901
    {
1902
        return detail::and_then_impl(std::move(*this), std::forward<F>(f));
1903
    }
1904
1905
    template <typename F>
1906
    constexpr auto or_else(F&& f) & noexcept(noexcept(
1907
        detail::or_else_impl(SCN_DECLVAL(expected&), std::forward<F>(f))))
1908
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1909
    {
1910
        return detail::or_else_impl(*this, std::forward<F>(f));
1911
    }
1912
    template <typename F>
1913
    constexpr auto or_else(F&& f) const& noexcept(noexcept(
1914
        detail::or_else_impl(SCN_DECLVAL(const expected&), std::forward<F>(f))))
1915
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1916
    {
1917
        return detail::or_else_impl(*this, std::forward<F>(f));
1918
    }
1919
    template <typename F>
1920
    constexpr auto or_else(F&& f) && noexcept(noexcept(
1921
        detail::or_else_impl(SCN_DECLVAL(expected&&), std::forward<F>(f))))
1922
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1923
    {
1924
        return detail::or_else_impl(std::move(*this), std::forward<F>(f));
1925
    }
1926
    template <typename F>
1927
    constexpr auto or_else(F&& f) const&& noexcept(
1928
        noexcept(detail::or_else_impl(SCN_DECLVAL(const expected&&),
1929
                                      std::forward<F>(f))))
1930
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1931
    {
1932
        return detail::or_else_impl(std::move(*this), std::forward<F>(f));
1933
    }
1934
1935
    template <typename F>
1936
    constexpr auto transform(
1937
        F&& f) & -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1938
    {
1939
        return detail::transform_impl(*this, std::forward<F>(f));
1940
    }
1941
    template <typename F>
1942
    constexpr auto transform(F&& f)
1943
        const& -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1944
    {
1945
        return detail::transform_impl(*this, std::forward<F>(f));
1946
    }
1947
    template <typename F>
1948
    constexpr auto transform(
1949
        F&& f) && -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1950
    {
1951
        return detail::transform_impl(std::move(*this), std::forward<F>(f));
1952
    }
1953
    template <typename F>
1954
    constexpr auto transform(F&& f)
1955
        const&& -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1956
    {
1957
        return detail::transform_impl(std::move(*this), std::forward<F>(f));
1958
    }
1959
1960
    template <typename F>
1961
    constexpr auto transform_error(
1962
        F&& f) & -> decltype(detail::transform_error_impl(*this,
1963
                                                          std::forward<F>(f)))
1964
0
    {
1965
0
        return detail::transform_error_impl(*this, std::forward<F>(f));
1966
0
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeES6_EUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Unexecuted instantiation: _ZNR3scn2v48expectedIPKcNS0_4impl11parse_errorEE15transform_errorIZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeES3_EUlS5_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
Unexecuted instantiation: _ZNR3scn2v48expectedIPKwNS0_4impl11parse_errorEE15transform_errorIZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS5_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
1967
    template <typename F>
1968
    constexpr auto transform_error(F&& f)
1969
        const& -> decltype(detail::transform_error_impl(*this,
1970
                                                        std::forward<F>(f)))
1971
    {
1972
        return detail::transform_error_impl(*this, std::forward<F>(f));
1973
    }
1974
    template <typename F>
1975
    constexpr auto transform_error(
1976
        F&& f) && -> decltype(detail::transform_error_impl(*this,
1977
                                                           std::forward<F>(f)))
1978
10.1M
    {
1979
10.1M
        return detail::transform_error_impl(std::move(*this),
1980
10.1M
                                            std::forward<F>(f));
1981
10.1M
    }
_ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1978
336k
    {
1979
336k
        return detail::transform_error_impl(std::move(*this),
1980
336k
                                            std::forward<F>(f));
1981
336k
    }
_ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1978
3.08M
    {
1979
3.08M
        return detail::transform_error_impl(std::move(*this),
1980
3.08M
                                            std::forward<F>(f));
1981
3.08M
    }
_ZNO3scn2v48expectedIPKcNS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
1978
554k
    {
1979
554k
        return detail::transform_error_impl(std::move(*this),
1980
554k
                                            std::forward<F>(f));
1981
554k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESL_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSR_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESE_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS6_11parse_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESI_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSO_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESA_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeES6_EUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESG_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSM_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE15transform_errorIRFNS0_10scan_errorESB_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSH_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESL_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSR_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESE_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS6_11parse_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESI_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSO_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
_ZNO3scn2v48expectedIPKwNS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
1978
6.16M
    {
1979
6.16M
        return detail::transform_error_impl(std::move(*this),
1980
6.16M
                                            std::forward<F>(f));
1981
6.16M
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESA_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
Unexecuted instantiation: _ZNO3scn2v48expectedIPKwNS0_4impl9eof_errorEE15transform_errorIRFNS4_11parse_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESG_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSM_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE15transform_errorIRFNS0_10scan_errorESB_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSH_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNO3scn2v48expectedIPKcNS0_4impl9eof_errorEE15transform_errorIRFNS4_11parse_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESI_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSO_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESI_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSO_
1982
    template <typename F>
1983
    constexpr auto transform_error(F&& f)
1984
        const&& -> decltype(detail::transform_error_impl(*this,
1985
                                                         std::forward<F>(f)))
1986
    {
1987
        return detail::transform_error_impl(std::move(*this),
1988
                                            std::forward<F>(f));
1989
    }
1990
1991
private:
1992
    template <typename... Args>
1993
    void emplace_impl(Args&&... args) noexcept(
1994
        std::is_nothrow_constructible_v<T, Args&&...>)
1995
    {
1996
        if (this->has_value()) {
1997
            this->destroy_value();
1998
            this->construct(std::forward<Args>(args)...);
1999
        }
2000
        else {
2001
#if SCN_HAS_EXCEPTIONS
2002
            if constexpr (std::is_nothrow_constructible_v<T, Args&&...>) {
2003
                auto tmp = std::move(error());
2004
                this->destroy_unexpected();
2005
2006
                try {
2007
                    this->construct(std::forward<Args>(args)...);
2008
                }
2009
                catch (...) {
2010
                    this->construct_unexpected(std::move(tmp));
2011
                    throw;
2012
                }
2013
            }
2014
            else {
2015
                this->construct(std::forward<Args>(args)...);
2016
            }
2017
#else
2018
            this->destroy_unexpected();
2019
            this->construct(std::forward<Args>(args)...);
2020
#endif
2021
        }
2022
    }
2023
2024
    template <typename Value>
2025
    void assign_value(Value&& val) noexcept(
2026
        std::is_nothrow_constructible_v<detail::remove_cvref_t<Value>,
2027
                                        Value&&> &&
2028
        std::is_nothrow_assignable_v<T, Value&&>)
2029
    {
2030
        if (has_value()) {
2031
            this->get_value() = std::forward<Value>(val);
2032
            return;
2033
        }
2034
2035
#if SCN_HAS_EXCEPTIONS
2036
        if constexpr (std::is_nothrow_constructible_v<T, Value&&>) {
2037
            this->destroy_unexpected();
2038
            this->construct(std::forward<Value>(val));
2039
        }
2040
        else {
2041
            auto tmp = std::move(this->get_unexpected());
2042
            this->destroy_unexpected();
2043
2044
            try {
2045
                this->construct(std::forward<Value>(val));
2046
            }
2047
            catch (...) {
2048
                this->construct_unexpected(std::move(tmp));
2049
            }
2050
        }
2051
#else
2052
        this->destroy_unexpected();
2053
        this->construct(std::forward<Value>(val));
2054
#endif
2055
    }
2056
2057
    template <typename Unexpected>
2058
    void assign_unexpected(Unexpected&& unex) noexcept(
2059
        std::is_nothrow_constructible_v<E, Unexpected&&> &&
2060
        std::is_nothrow_assignable_v<E, Unexpected&&>)
2061
    {
2062
        if (!has_value()) {
2063
            this->get_unexpected() = std::forward<Unexpected>(unex);
2064
            return;
2065
        }
2066
2067
        this->destroy_value();
2068
        this->construct_unexpected(std::forward<Unexpected>(unex));
2069
    }
2070
};
2071
2072
/////////////////////////////////////////////////////////////////
2073
// <ranges> implementation
2074
/////////////////////////////////////////////////////////////////
2075
2076
/**
2077
 * Contains a very minimal `<ranges>` implementation.
2078
 *
2079
 * This is a heavily stripped-down and adapted version of NanoRange:
2080
 * https://github.com/tcbrindle/NanoRange.
2081
 *
2082
 * NanoRange is provided under the Boost license.
2083
 * Copyright (c) 2018 Tristan Brindle (tcbrindle at gmail dot com)
2084
 */
2085
namespace ranges {
2086
2087
namespace detail {
2088
using namespace scn::detail;
2089
2090
template <typename T>
2091
constexpr auto decay_copy(T&& t) noexcept(
2092
    noexcept(static_cast<std::decay_t<T>>(SCN_FWD(t)))) -> std::decay_t<T>
2093
317M
{
2094
317M
    return SCN_FWD(t);
2095
317M
}
_ZN3scn2v46ranges6detail10decay_copyIPKcEEu7__decayIT_EOS6_
Line
Count
Source
2093
5.64M
{
2094
5.64M
    return SCN_FWD(t);
2095
5.64M
}
_ZN3scn2v46ranges6detail10decay_copyImEEu7__decayIT_EOS4_
Line
Count
Source
2093
9.64M
{
2094
9.64M
    return SCN_FWD(t);
2095
9.64M
}
_ZN3scn2v46ranges6detail10decay_copyINSt3__116__deque_iteratorIcPKcRS6_PKS7_lLl4096EEEEEu7__decayIT_EOSC_
Line
Count
Source
2093
14.9M
{
2094
14.9M
    return SCN_FWD(t);
2095
14.9M
}
_ZN3scn2v46ranges6detail10decay_copyIPKwEEu7__decayIT_EOS6_
Line
Count
Source
2093
48.4M
{
2094
48.4M
    return SCN_FWD(t);
2095
48.4M
}
_ZN3scn2v46ranges6detail10decay_copyINSt3__116__deque_iteratorIwPKwRS6_PKS7_lLl1024EEEEEu7__decayIT_EOSC_
Line
Count
Source
2093
238M
{
2094
238M
    return SCN_FWD(t);
2095
238M
}
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEu7__decayIT_EOSD_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EEEEu7__decayIT_EOSA_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEEu7__decayIT_EOS8_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEu7__decayIT_EOSD_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EEEEu7__decayIT_EOSA_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEEu7__decayIT_EOS8_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS1_18default_sentinel_tEEEu7__decayIT_EOS5_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINSt3__111__wrap_iterIPcEEEEu7__decayIT_EOS8_
2096
2097
template <bool>
2098
struct conditional {
2099
    template <typename T, typename>
2100
    using type = T;
2101
};
2102
2103
template <>
2104
struct conditional<false> {
2105
    template <typename, typename U>
2106
    using type = U;
2107
};
2108
2109
template <bool B, typename T, typename U>
2110
using conditional_t = typename conditional<B>::template type<T, U>;
2111
2112
template <template <class...> class AliasT, typename... Args>
2113
auto exists_helper(long) -> std::false_type;
2114
2115
template <template <class...> class AliasT,
2116
          typename... Args,
2117
          typename = AliasT<Args...>>
2118
auto exists_helper(int) -> std::true_type;
2119
2120
template <template <class...> class AliasT, typename... Args>
2121
inline constexpr bool exists_v =
2122
    decltype(exists_helper<AliasT, Args...>(0))::value;
2123
2124
template <typename, typename...>
2125
auto test_requires_fn(long) -> std::false_type;
2126
2127
template <typename R,
2128
          typename... Args,
2129
          typename = decltype(&R::template requires_<Args...>)>
2130
auto test_requires_fn(int) -> std::true_type;
2131
2132
template <typename R, typename... Args>
2133
inline constexpr bool requires_ =
2134
    decltype(test_requires_fn<R, Args...>(0))::value;
2135
2136
template <bool Expr>
2137
using requires_expr = std::enable_if_t<Expr, int>;
2138
}  // namespace detail
2139
2140
template <typename>
2141
inline constexpr bool enable_borrowed_range = false;
2142
2143
namespace detail {
2144
template <typename T>
2145
inline constexpr bool boolean_testable_impl = std::is_convertible_v<T, bool>;
2146
2147
struct boolean_testable_concept {
2148
    template <typename T>
2149
    auto requires_(T&& t)
2150
        -> requires_expr<boolean_testable_impl<decltype(!std::forward<T>(t))>>;
2151
};
2152
2153
template <typename T>
2154
inline constexpr bool boolean_testable =
2155
    boolean_testable_impl<T> && detail::requires_<boolean_testable_concept, T>;
2156
}  // namespace detail
2157
2158
namespace detail {
2159
struct weakly_equality_comparable_with_concept {
2160
    template <typename T, typename U>
2161
    auto requires_(const std::remove_reference_t<T>& t,
2162
                   const std::remove_reference_t<U>& u)
2163
        -> decltype(requires_expr<boolean_testable<decltype(t == u)>>{},
2164
                    requires_expr<boolean_testable<decltype(t != u)>>{},
2165
                    requires_expr<boolean_testable<decltype(u == t)>>{},
2166
                    requires_expr<boolean_testable<decltype(u != t)>>{});
2167
};
2168
2169
template <typename T, typename U>
2170
inline constexpr bool weakly_equality_comparable_with =
2171
    requires_<weakly_equality_comparable_with_concept, T, U>;
2172
}  // namespace detail
2173
2174
template <typename T>
2175
inline constexpr bool equality_comparable =
2176
    detail::weakly_equality_comparable_with<T, T>;
2177
2178
namespace detail {
2179
struct equality_comparable_with_concept {
2180
    template <typename, typename>
2181
    static auto test(long) -> std::false_type;
2182
2183
    template <typename T, typename U>
2184
    static auto test(int)
2185
        -> std::enable_if_t<equality_comparable<T> && equality_comparable<U> &&
2186
#if 0
2187
            common_reference_with<const std::remove_reference_t<T>&,
2188
                                  const std::remove_reference_t<U>&> &&
2189
            equality_comparable<
2190
                common_reference_t<const std::remove_reference_t<T>&,
2191
                                   const std::remove_reference_t<U>&>> &&
2192
#endif
2193
                                weakly_equality_comparable_with<T, U>,
2194
                            std::true_type>;
2195
};
2196
}  // namespace detail
2197
2198
template <typename T, typename U>
2199
inline constexpr bool equality_comparable_with =
2200
    decltype(detail::equality_comparable_with_concept::test<T, U>(0))::value;
2201
2202
namespace detail {
2203
struct partially_ordered_with_concept {
2204
    template <typename T, typename U>
2205
    auto requires_(const std::remove_reference_t<T>& t,
2206
                   const std::remove_reference_t<U>& u)
2207
        -> decltype(requires_expr<boolean_testable<decltype(t < u)>>{},
2208
                    requires_expr<boolean_testable<decltype(t > u)>>{},
2209
                    requires_expr<boolean_testable<decltype(t <= u)>>{},
2210
                    requires_expr<boolean_testable<decltype(t >= u)>>{},
2211
                    requires_expr<boolean_testable<decltype(u < t)>>{},
2212
                    requires_expr<boolean_testable<decltype(u > t)>>{},
2213
                    requires_expr<boolean_testable<decltype(u <= t)>>{},
2214
                    requires_expr<boolean_testable<decltype(u >= t)>>{});
2215
};
2216
2217
template <typename T, typename U>
2218
inline constexpr bool partially_ordered_with =
2219
    detail::requires_<detail::partially_ordered_with_concept, T, U>;
2220
}  // namespace detail
2221
2222
template <typename T>
2223
inline constexpr bool totally_ordered =
2224
    equality_comparable<T> && detail::partially_ordered_with<T, T>;
2225
2226
namespace detail {
2227
struct totally_ordered_with_concept {
2228
    template <typename, typename>
2229
    static auto test(long) -> std::false_type;
2230
2231
    template <typename T, typename U>
2232
    static auto test(int)
2233
        -> std::enable_if_t<totally_ordered<T> && totally_ordered<U> &&
2234
                                equality_comparable_with<T, U> &&
2235
#if 0
2236
                                totally_ordered<common_reference_t<
2237
                                    const std::remove_reference_t<T>&,
2238
                                    const std::remove_reference_t<U>&>> &&
2239
#endif
2240
                                partially_ordered_with<T, U>,
2241
                            std::true_type>;
2242
};
2243
}  // namespace detail
2244
2245
template <typename T, typename U>
2246
inline constexpr bool totally_ordered_with =
2247
    decltype(detail::totally_ordered_with_concept::test<T, U>(0))::value;
2248
2249
namespace detail {
2250
struct movable_concept {
2251
    template <typename T>
2252
    static auto test(long) -> std::false_type;
2253
2254
    template <typename T>
2255
    static auto test(int) -> std::enable_if_t<
2256
        std::is_object_v<T> && std::is_move_constructible_v<T> &&
2257
            std::is_move_assignable_v<T> && std::is_swappable_v<T>,
2258
        std::true_type>;
2259
};
2260
}  // namespace detail
2261
2262
template <typename T>
2263
inline constexpr bool movable =
2264
    decltype(detail::movable_concept::test<T>(0))::value;
2265
2266
namespace detail {
2267
struct copyable_concept {
2268
    template <typename>
2269
    static auto test(long) -> std::false_type;
2270
2271
    template <typename T>
2272
    static auto test(int)
2273
        -> std::enable_if_t<std::is_copy_constructible_v<T> && movable<T> &&
2274
                                std::is_copy_assignable_v<T>,
2275
                            std::true_type>;
2276
};
2277
}  // namespace detail
2278
2279
template <typename T>
2280
inline constexpr bool copyable =
2281
    decltype(detail::copyable_concept::test<T>(0))::value;
2282
2283
template <typename T>
2284
inline constexpr bool semiregular =
2285
    copyable<T> && std::is_default_constructible_v<T>;
2286
2287
template <typename T>
2288
inline constexpr bool regular = semiregular<T> && equality_comparable<T>;
2289
2290
template <typename>
2291
struct incrementable_traits;
2292
2293
namespace detail {
2294
struct empty {};
2295
2296
template <typename T>
2297
struct with_difference_type {
2298
    using difference_type = T;
2299
};
2300
2301
template <typename, typename = void>
2302
struct incrementable_traits_helper {};
2303
2304
// Workaround for GCC silliness: void* has no difference_type
2305
// FIXME: This is required to stop WeaklyIncrementable<void*> being a hard
2306
// error Can we formulate the concept differently to avoid the need for this
2307
// hack?
2308
template <>
2309
struct incrementable_traits_helper<void*> {};
2310
2311
template <typename T>
2312
struct incrementable_traits_helper<T*>
2313
    : detail::conditional_t<std::is_object_v<T>,
2314
                            with_difference_type<std::ptrdiff_t>,
2315
                            empty> {};
2316
2317
template <class I>
2318
struct incrementable_traits_helper<const I>
2319
    : incrementable_traits<std::decay_t<I>> {};
2320
2321
template <typename, typename = void>
2322
struct has_member_difference_type : std::false_type {};
2323
2324
template <typename T>
2325
struct has_member_difference_type<T, std::void_t<typename T::difference_type>>
2326
    : std::true_type {};
2327
2328
template <typename T>
2329
constexpr bool has_member_difference_type_v =
2330
    has_member_difference_type<T>::value;
2331
2332
template <typename T>
2333
struct incrementable_traits_helper<
2334
    T,
2335
    std::enable_if_t<has_member_difference_type_v<T>>> {
2336
    using difference_type = typename T::difference_type;
2337
};
2338
2339
template <typename T, typename = void>
2340
struct subtraction_result_type {
2341
    using type = void;
2342
};
2343
template <typename T>
2344
struct subtraction_result_type<
2345
    T,
2346
    std::void_t<decltype(std::declval<const T&>() -
2347
                         std::declval<const T&>())>> {
2348
    using type = decltype(std::declval<const T&>() - std::declval<const T&>());
2349
};
2350
2351
template <typename T>
2352
inline constexpr bool enable_incrtraits_subtractable =
2353
    !std::is_pointer_v<T> && !has_member_difference_type_v<T> &&
2354
    std::is_integral_v<typename subtraction_result_type<T>::type>;
2355
2356
template <typename T>
2357
struct incrementable_traits_helper<
2358
    T,
2359
    std::enable_if_t<enable_incrtraits_subtractable<T>>>
2360
    : with_difference_type<
2361
          std::make_signed_t<typename subtraction_result_type<T>::type>> {};
2362
}  // namespace detail
2363
2364
template <typename T>
2365
struct incrementable_traits : detail::incrementable_traits_helper<T> {};
2366
2367
template <typename T>
2368
using iter_difference_t = typename incrementable_traits<T>::difference_type;
2369
2370
template <typename>
2371
struct readable_traits;
2372
2373
namespace detail {
2374
template <typename T>
2375
struct with_value_type {
2376
    using value_type = T;
2377
};
2378
2379
template <typename, typename = void>
2380
struct readable_traits_helper {};
2381
2382
template <typename T>
2383
struct readable_traits_helper<T*>
2384
    : detail::conditional_t<std::is_object_v<T>,
2385
                            with_value_type<std::remove_cv_t<T>>,
2386
                            empty> {};
2387
2388
template <typename I>
2389
struct readable_traits_helper<I, std::enable_if_t<std::is_array_v<I>>>
2390
    : readable_traits<std::decay_t<I>> {};
2391
2392
template <typename I>
2393
struct readable_traits_helper<const I, std::enable_if_t<!std::is_array_v<I>>>
2394
    : readable_traits<std::decay_t<I>> {};
2395
2396
template <typename T, typename V = typename T::value_type>
2397
struct member_value_type
2398
    : detail::conditional_t<std::is_object_v<V>, with_value_type<V>, empty> {};
2399
2400
template <typename T, typename E = typename T::element_type>
2401
struct member_element_type
2402
    : detail::conditional_t<std::is_object_v<E>,
2403
                            with_value_type<std::remove_cv_t<E>>,
2404
                            empty> {};
2405
2406
template <typename T>
2407
using member_value_type_t = typename T::value_type;
2408
2409
template <typename T>
2410
constexpr bool has_member_value_type_v = exists_v<member_value_type_t, T>;
2411
2412
template <typename T>
2413
using member_element_type_t = typename T::element_type;
2414
2415
template <typename T>
2416
constexpr bool has_member_element_type_v = exists_v<member_element_type_t, T>;
2417
2418
template <typename T>
2419
struct readable_traits_helper<T,
2420
                              std::enable_if_t<has_member_value_type_v<T> &&
2421
                                               !has_member_element_type_v<T>>>
2422
    : member_value_type<T> {};
2423
2424
template <typename T>
2425
struct readable_traits_helper<T,
2426
                              std::enable_if_t<has_member_element_type_v<T> &&
2427
                                               !has_member_value_type_v<T>>>
2428
    : member_element_type<T> {};
2429
2430
// A type which has both value_type and element_type members must specialise
2431
// readable_traits to tell us which one to prefer -- see
2432
// https://github.com/ericniebler/stl2/issues/562
2433
template <typename T>
2434
struct readable_traits_helper<T,
2435
                              std::enable_if_t<has_member_element_type_v<T> &&
2436
                                               has_member_value_type_v<T>>> {};
2437
}  // namespace detail
2438
2439
template <typename T>
2440
struct readable_traits : detail::readable_traits_helper<T> {};
2441
2442
template <typename T>
2443
using iter_value_t = typename readable_traits<T>::value_type;
2444
2445
namespace detail {
2446
template <typename T>
2447
using with_reference = T&;
2448
2449
struct can_reference_concept {
2450
    template <typename T>
2451
    auto requires_() -> with_reference<T>;
2452
};
2453
2454
template <typename T>
2455
inline constexpr bool can_reference =
2456
    detail::requires_<can_reference_concept, T>;
2457
2458
struct dereferencable_concept {
2459
    template <typename T>
2460
    auto requires_(T& t)
2461
        -> decltype(requires_expr<can_reference<decltype(*t)>>{});
2462
};
2463
2464
template <typename T>
2465
inline constexpr bool dereferenceable = requires_<dereferencable_concept, T>;
2466
2467
// GCC and Clang allow dereferencing void* as an extension.
2468
// Let's kill that off now.
2469
2470
template <>
2471
inline constexpr bool dereferenceable<void*> = false;
2472
}  // namespace detail
2473
2474
using std::bidirectional_iterator_tag;
2475
using std::forward_iterator_tag;
2476
using std::input_iterator_tag;
2477
using std::output_iterator_tag;
2478
using std::random_access_iterator_tag;
2479
2480
#if SCN_STD >= SCN_STD_20 && defined(__cpp_lib_ranges) && \
2481
    __cpp_lib_ranges >= 201911L
2482
using std::contiguous_iterator_tag;
2483
#else
2484
struct contiguous_iterator_tag : random_access_iterator_tag {};
2485
#endif
2486
2487
template <typename T>
2488
struct iterator_category;
2489
2490
namespace detail {
2491
template <typename T, typename = void>
2492
struct iterator_category_ {};
2493
template <typename T>
2494
struct iterator_category_<T*>
2495
    : std::enable_if<std::is_object_v<T>, contiguous_iterator_tag> {};
2496
template <typename T>
2497
struct iterator_category_<const T> : iterator_category<T> {};
2498
template <typename T>
2499
struct iterator_category_<T, std::void_t<typename T::iterator_category>> {
2500
    using type = typename T::iterator_category;
2501
};
2502
}  // namespace detail
2503
2504
template <typename T>
2505
struct iterator_category : detail::iterator_category_<T> {};
2506
template <typename T>
2507
using iterator_category_t = typename iterator_category<T>::type;
2508
2509
namespace detail {
2510
2511
template <typename T, typename = void>
2512
struct legacy_iterator_category : iterator_category<T> {};
2513
2514
template <typename T>
2515
struct legacy_iterator_category<
2516
    T,
2517
    std::enable_if_t<
2518
        std::is_same_v<iterator_category_t<T>, contiguous_iterator_tag>>> {
2519
    using type = random_access_iterator_tag;
2520
};
2521
2522
template <typename T>
2523
using legacy_iterator_category_t = typename legacy_iterator_category<T>::type;
2524
2525
}  // namespace detail
2526
2527
template <typename T>
2528
using iter_reference_t =
2529
    std::enable_if_t<detail::dereferenceable<T>, decltype(*std::declval<T&>())>;
2530
2531
namespace detail {
2532
2533
struct readable_concept {
2534
    template <typename In>
2535
    auto requires_() -> decltype(std::declval<iter_value_t<In>>(),
2536
                                 std::declval<iter_reference_t<In>>());
2537
    // std::declval<iter_rvalue_reference_t<In>>());
2538
2539
    template <typename>
2540
    static auto test(long) -> std::false_type;
2541
2542
    template <typename In>
2543
    static auto test(int)
2544
        -> std::enable_if_t<detail::requires_<readable_concept, In>,
2545
#if 0
2546
            common_reference_with<iter_reference_t<In>&&, iter_value_t<In>&> &&
2547
            common_reference_with<iter_reference_t<In>&&,
2548
                                  iter_rvalue_reference_t<In>&&> &&
2549
            common_reference_with<iter_rvalue_reference_t<In>&&,
2550
                                  const iter_value_t<In>&>,
2551
#endif
2552
                            std::true_type>;
2553
};
2554
2555
}  // namespace detail
2556
2557
template <typename In>
2558
inline constexpr bool readable =
2559
    decltype(detail::readable_concept::test<In>(0))::value;
2560
2561
namespace detail {
2562
2563
struct writable_concept {
2564
    template <typename Out, typename T>
2565
    auto requires_(Out&& o, T&& t)
2566
        -> decltype(*o = std::forward<T>(t),
2567
                    *std::forward<Out>(o) = std::forward<T>(t),
2568
                    const_cast<const iter_reference_t<Out>&&>(*o) =
2569
                        std::forward<T>(t),
2570
                    const_cast<const iter_reference_t<Out>&&>(
2571
                        *std::forward<Out>(o)) = std::forward<T>(t));
2572
};
2573
2574
}  // namespace detail
2575
2576
template <typename Out, typename T>
2577
inline constexpr bool writable =
2578
    detail::requires_<detail::writable_concept, Out, T>;
2579
2580
namespace detail {
2581
2582
template <typename T>
2583
inline constexpr bool is_integer_like = std::is_integral_v<T>;
2584
2585
template <typename T>
2586
inline constexpr bool is_signed_integer_like =
2587
    std::is_integral_v<T> && std::is_signed_v<T>;
2588
2589
struct weakly_incrementable_concept {
2590
    template <typename I>
2591
    auto requires_(I i)
2592
        -> decltype(std::declval<iter_difference_t<I>>(),
2593
                    requires_expr<
2594
                        is_signed_integer_like<iter_difference_t<I>>>{},
2595
                    requires_expr<std::is_same_v<decltype(++i), I&>>{},
2596
                    i++);
2597
};
2598
2599
}  // namespace detail
2600
2601
template <typename I>
2602
inline constexpr bool weakly_incrementable =
2603
    std::is_default_constructible_v<I> && movable<I> &&
2604
    detail::requires_<detail::weakly_incrementable_concept, I>;
2605
2606
namespace detail {
2607
2608
struct incrementable_concept {
2609
    template <typename I>
2610
    auto requires_(I i)
2611
        -> decltype(requires_expr<std::is_same_v<decltype(i++), I>>{});
2612
};
2613
2614
}  // namespace detail
2615
2616
template <typename I>
2617
inline constexpr bool incrementable =
2618
    regular<I> && weakly_incrementable<I> &&
2619
    detail::requires_<detail::incrementable_concept, I>;
2620
2621
namespace detail {
2622
2623
struct input_or_output_iterator_concept {
2624
    template <typename I>
2625
    auto requires_(I i)
2626
        -> decltype(requires_expr<can_reference<decltype(*i)>>{});
2627
};
2628
2629
}  // namespace detail
2630
2631
template <typename I>
2632
inline constexpr bool input_or_output_iterator =
2633
    detail::requires_<detail::input_or_output_iterator_concept, I> &&
2634
    weakly_incrementable<I>;
2635
2636
template <typename S, typename I>
2637
inline constexpr bool sentinel_for =
2638
    semiregular<S> && input_or_output_iterator<I> &&
2639
    detail::weakly_equality_comparable_with<S, I>;
2640
2641
template <typename S, typename I>
2642
inline constexpr bool disable_sized_sentinel = false;
2643
2644
namespace detail {
2645
2646
struct sized_sentinel_for_concept {
2647
    template <typename S, typename I>
2648
    auto requires_(const S& s, const I& i)
2649
        -> decltype(requires_expr<std::is_same_v<decltype(s - i),
2650
                                                 iter_difference_t<I>>>{},
2651
                    requires_expr<std::is_same_v<decltype(i - s),
2652
                                                 iter_difference_t<I>>>{});
2653
};
2654
2655
}  // namespace detail
2656
2657
template <typename S, typename I>
2658
inline constexpr bool sized_sentinel_for =
2659
    sentinel_for<S, I> &&
2660
    !disable_sized_sentinel<std::remove_cv_t<S>, std::remove_cv_t<I>> &&
2661
    detail::requires_<detail::sized_sentinel_for_concept, S, I>;
2662
2663
// This is a hack, but I'm fed up with my tests breaking because GCC
2664
// has a silly extension
2665
template <typename S>
2666
inline constexpr bool sized_sentinel_for<S, void*> = false;
2667
2668
template <typename I>
2669
inline constexpr bool sized_sentinel_for<void*, I> = false;
2670
2671
template <>
2672
inline constexpr bool sized_sentinel_for<void*, void*> = false;
2673
2674
namespace detail {
2675
2676
// FIXME: Use ITER_CONCEPT, not iterator_category_t
2677
struct input_iterator_concept {
2678
    template <typename I>
2679
    auto requires_() -> iterator_category_t<I>;
2680
2681
    template <typename>
2682
    static auto test(long) -> std::false_type;
2683
2684
    template <typename I>
2685
    static auto test(int) -> std::enable_if_t<
2686
        input_or_output_iterator<I> && readable<I> &&
2687
            detail::requires_<input_iterator_concept, I> &&
2688
            std::is_base_of_v<input_iterator_tag, iterator_category_t<I>>,
2689
        std::true_type>;
2690
};
2691
2692
}  // namespace detail
2693
2694
template <typename I>
2695
inline constexpr bool input_iterator =
2696
    decltype(detail::input_iterator_concept::test<I>(0))::value;
2697
2698
namespace detail {
2699
2700
struct output_iterator_concept {
2701
    template <typename I, typename T>
2702
    auto requires_(I i, T&& t) -> decltype(*i++ = std::forward<T>(t));
2703
};
2704
2705
}  // namespace detail
2706
2707
template <typename I, typename T>
2708
inline constexpr bool output_iterator =
2709
    input_or_output_iterator<I> && writable<I, T> &&
2710
    detail::requires_<detail::output_iterator_concept, I, T>;
2711
2712
namespace detail {
2713
2714
struct forward_iterator_concept {
2715
    template <typename>
2716
    static auto test(long) -> std::false_type;
2717
2718
    template <typename I>
2719
    static auto test(int) -> std::enable_if_t<
2720
        input_iterator<I> &&
2721
            std::is_base_of_v<forward_iterator_tag, iterator_category_t<I>> &&
2722
            incrementable<I> && sentinel_for<I, I>,
2723
        std::true_type>;
2724
};
2725
2726
}  // namespace detail
2727
2728
template <typename I>
2729
inline constexpr bool forward_iterator =
2730
    decltype(detail::forward_iterator_concept::test<I>(0))::value;
2731
2732
namespace detail {
2733
2734
struct bidirectional_iterator_concept {
2735
    template <typename I>
2736
    auto requires_(I i)
2737
        -> decltype(requires_expr<std::is_same_v<decltype(--i), I&>>{},
2738
                    requires_expr<std::is_same_v<decltype(i--), I>>{});
2739
2740
    template <typename>
2741
    static auto test(long) -> std::false_type;
2742
2743
    template <typename I>
2744
    static auto test(int) -> std::enable_if_t<
2745
        forward_iterator<I> &&
2746
            std::is_base_of_v<bidirectional_iterator_tag,
2747
                              iterator_category_t<I>> &&
2748
            detail::requires_<bidirectional_iterator_concept, I>,
2749
        std::true_type>;
2750
};
2751
2752
}  // namespace detail
2753
2754
template <typename I>
2755
inline constexpr bool bidirectional_iterator =
2756
    decltype(detail::bidirectional_iterator_concept::test<I>(0))::value;
2757
2758
namespace detail {
2759
2760
struct random_access_iterator_concept {
2761
    template <typename>
2762
    static auto test(long) -> std::false_type;
2763
2764
    template <typename I>
2765
    static auto test(int) -> std::enable_if_t<
2766
        bidirectional_iterator<I> &&
2767
            std::is_base_of_v<random_access_iterator_tag,
2768
                              iterator_category_t<I>> &&
2769
            totally_ordered<I> && sized_sentinel_for<I, I> &&
2770
            detail::requires_<random_access_iterator_concept, I>,
2771
        std::true_type>;
2772
2773
    template <typename I>
2774
    auto requires_(I i, const I j, const iter_difference_t<I> n)
2775
        -> decltype(requires_expr<std::is_same_v<decltype(i += n), I&>>{},
2776
                    requires_expr<std::is_same_v<decltype(j + n), I>>{},
2777
#ifndef _MSC_VER
2778
                    requires_expr<std::is_same_v<decltype(n + j),
2779
                                                 I>>{},  // FIXME: MSVC doesn't
2780
                                                         // like this when I =
2781
                                                         // int*
2782
#endif
2783
                    requires_expr<std::is_same_v<decltype(i -= n), I&>>{},
2784
                    requires_expr<std::is_same_v<decltype(j - n), I>>{},
2785
                    requires_expr<
2786
                        std::is_same_v<decltype(j[n]), iter_reference_t<I>>>{});
2787
};
2788
2789
}  // namespace detail
2790
2791
template <typename I>
2792
inline constexpr bool random_access_iterator =
2793
    decltype(detail::random_access_iterator_concept::test<I>(0))::value;
2794
2795
namespace detail {
2796
2797
struct contiguous_iterator_concept {
2798
    template <typename>
2799
    static auto test(long) -> std::false_type;
2800
2801
    template <typename I>
2802
    static auto test(int) -> std::enable_if_t<
2803
        random_access_iterator<I> &&
2804
            /*std::is_base_of_v<contiguous_iterator_tag,
2805
                              iterator_category_t<I>> &&*/
2806
            detail::can_make_address_from_iterator<I> &&
2807
            std::is_lvalue_reference_v<iter_reference_t<I>> &&
2808
            std::is_same_v<iter_value_t<I>,
2809
                           remove_cvref_t<iter_reference_t<I>>>,
2810
        std::true_type>;
2811
};
2812
2813
}  // namespace detail
2814
2815
template <typename I>
2816
inline constexpr bool contiguous_iterator =
2817
    decltype(detail::contiguous_iterator_concept::test<I>(0))::value;
2818
2819
namespace detail::begin_ {
2820
2821
template <typename T>
2822
void begin(T&) = delete;
2823
template <typename T>
2824
void begin(const T&) = delete;
2825
2826
struct fn {
2827
private:
2828
    template <typename T,
2829
              std::enable_if_t<!std::is_lvalue_reference_v<T> &&
2830
                               !enable_borrowed_range<std::remove_cv_t<T>>>* =
2831
                  nullptr>
2832
    static constexpr void impl(T&&, priority_tag<3>) = delete;
2833
2834
    template <typename T,
2835
              std::enable_if_t<std::is_array_v<remove_cvref_t<T>>>* = nullptr>
2836
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept
2837
        -> decltype(t + 0)
2838
    {
2839
        static_assert(ranges::input_or_output_iterator<decltype(t + 0)>);
2840
        return t + 0;
2841
    }
2842
2843
    template <typename T>
2844
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
2845
        noexcept(decay_copy(SCN_FWD(t).begin())))
2846
        -> std::enable_if_t<
2847
            input_or_output_iterator<decltype(decay_copy(SCN_FWD(t).begin()))>,
2848
            decltype(decay_copy(SCN_FWD(t).begin()))>
2849
44.1M
    {
2850
44.1M
        return decay_copy(t.begin());
2851
44.1M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
64.3k
    {
2850
64.3k
        return decay_copy(t.begin());
2851
64.3k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
1.13M
    {
2850
1.13M
        return decay_copy(t.begin());
2851
1.13M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
2.71M
    {
2850
2.71M
        return decay_copy(t.begin());
2851
2.71M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<std::__1::deque<char, std::__1::allocator<char> > const&>(std::__1::deque<char, std::__1::allocator<char> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
31.0k
    {
2850
31.0k
        return decay_copy(t.begin());
2851
31.0k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
684k
    {
2850
684k
        return decay_copy(t.begin());
2851
684k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
326k
    {
2850
326k
        return decay_copy(t.begin());
2851
326k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
128k
    {
2850
128k
        return decay_copy(t.begin());
2851
128k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
12.3M
    {
2850
12.3M
        return decay_copy(t.begin());
2851
12.3M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
17.3M
    {
2850
17.3M
        return decay_copy(t.begin());
2851
17.3M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&>(std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
62.0k
    {
2850
62.0k
        return decay_copy(t.begin());
2851
62.0k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
6.18M
    {
2850
6.18M
        return decay_copy(t.begin());
2851
6.18M
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2849
3.05M
    {
2850
3.05M
        return decay_copy(t.begin());
2851
3.05M
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > const&>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > const&, scn::v4::detail::priority_tag<1ul>)
2852
2853
    template <typename T>
2854
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(
2855
        noexcept(decay_copy(begin(SCN_FWD(t)))))
2856
        -> std::enable_if_t<
2857
            input_or_output_iterator<decltype(decay_copy(begin(SCN_FWD(t))))>,
2858
            decltype(decay_copy(begin(SCN_FWD(t))))>
2859
    {
2860
        return decay_copy(begin(SCN_FWD(t)));
2861
    }
2862
2863
public:
2864
    template <typename T>
2865
    constexpr auto operator()(T&& t) const
2866
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<3>{})))
2867
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<3>{}))
2868
44.1M
    {
2869
44.1M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
44.1M
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
64.3k
    {
2869
64.3k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
64.3k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
1.13M
    {
2869
1.13M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
1.13M
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
2.71M
    {
2869
2.71M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
2.71M
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRKNSt3__15dequeIcNS6_9allocatorIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
31.0k
    {
2869
31.0k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
31.0k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
684k
    {
2869
684k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
684k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
326k
    {
2869
326k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
326k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
128k
    {
2869
128k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
128k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
12.3M
    {
2869
12.3M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
12.3M
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
17.3M
    {
2869
17.3M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
17.3M
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRKNSt3__15dequeIwNS6_9allocatorIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
62.0k
    {
2869
62.0k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
62.0k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
6.18M
    {
2869
6.18M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
6.18M
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2868
3.05M
    {
2869
3.05M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2870
3.05M
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEENS8_15take_width_viewINS7_ISE_SF_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSC_EENS8_15take_width_viewINS7_ISC_SC_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEENS8_15take_width_viewINS7_ISE_SF_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSC_EENS8_15take_width_viewINS7_ISC_SC_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclINS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclINS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINSt3__111__wrap_iterIPcEESB_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
2871
};
2872
2873
}  // namespace detail::begin_
2874
2875
inline constexpr auto begin = detail::begin_::fn{};
2876
2877
namespace detail::end_ {
2878
2879
template <typename T>
2880
void end(T&) = delete;
2881
template <typename T>
2882
void end(const T&) = delete;
2883
2884
struct fn {
2885
private:
2886
    template <typename T,
2887
              std::enable_if_t<!std::is_lvalue_reference_v<T> &&
2888
                               !enable_borrowed_range<std::remove_cv_t<T>>>* =
2889
                  nullptr>
2890
    static constexpr void impl(T&&, priority_tag<3>) = delete;
2891
2892
    template <typename T,
2893
              std::enable_if_t<std::is_array_v<remove_cvref_t<T>>>* = nullptr>
2894
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept
2895
        -> decltype(t + std::extent_v<remove_cvref_t<T>>)
2896
    {
2897
        return t + std::extent_v<remove_cvref_t<T>>;
2898
    }
2899
2900
    template <typename T,
2901
              typename S = decltype(decay_copy(SCN_DECLVAL(T).end())),
2902
              typename I = decltype(::scn::ranges::begin(SCN_DECLVAL(T)))>
2903
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
2904
        noexcept(decay_copy(SCN_FWD(t).end())))
2905
        -> std::enable_if_t<sentinel_for<S, I>,
2906
                            decltype(decay_copy(SCN_FWD(t).end()))>
2907
263M
    {
2908
263M
        return decay_copy(SCN_FWD(t).end());
2909
263M
    }
std::__1::enable_if<sentinel_for<char const*, char const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, char const*, char const*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
1.19M
    {
2908
1.19M
        return decay_copy(SCN_FWD(t).end());
2909
1.19M
    }
std::__1::enable_if<sentinel_for<char const*, char const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&, char const*, char const*>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
535k
    {
2908
535k
        return decay_copy(SCN_FWD(t).end());
2909
535k
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<std::__1::deque<char, std::__1::allocator<char> > const&, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(std::__1::deque<char, std::__1::allocator<char> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
715k
    {
2908
715k
        return decay_copy(SCN_FWD(t).end());
2909
715k
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
12.8M
    {
2908
12.8M
        return decay_copy(SCN_FWD(t).end());
2909
12.8M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
326k
    {
2908
326k
        return decay_copy(SCN_FWD(t).end());
2909
326k
    }
std::__1::enable_if<sentinel_for<wchar_t const*, wchar_t const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, wchar_t const*, wchar_t const*>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
12.4M
    {
2908
12.4M
        return decay_copy(SCN_FWD(t).end());
2909
12.4M
    }
std::__1::enable_if<sentinel_for<wchar_t const*, wchar_t const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, wchar_t const*, wchar_t const*>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
6.11M
    {
2908
6.11M
        return decay_copy(SCN_FWD(t).end());
2909
6.11M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(std::__1::deque<wchar_t, std::__1::allocator<wchar_t> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
6.24M
    {
2908
6.24M
        return decay_copy(SCN_FWD(t).end());
2909
6.24M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
219M
    {
2908
219M
        return decay_copy(SCN_FWD(t).end());
2909
219M
    }
std::__1::enable_if<sentinel_for<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2907
3.05M
    {
2908
3.05M
        return decay_copy(SCN_FWD(t).end());
2909
3.05M
    }
Unexecuted instantiation: std::__1::enable_if<sentinel_for<char const*, char const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&, char const*, char const*>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<wchar_t const*, wchar_t const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, wchar_t const*, wchar_t const*>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > const&, std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::detail::priority_tag<1ul>)
2910
2911
    template <typename T,
2912
              typename S = decltype(decay_copy(end(SCN_DECLVAL(T)))),
2913
              typename I = decltype(::scn::ranges::begin(SCN_DECLVAL(T)))>
2914
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(noexcept(
2915
        decay_copy(end(SCN_FWD(t))))) -> std::enable_if_t<sentinel_for<S, I>, S>
2916
    {
2917
        return decay_copy(end(SCN_FWD(t)));
2918
    }
2919
2920
public:
2921
    template <typename T>
2922
    constexpr auto operator()(T&& t) const
2923
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<3>{})))
2924
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<3>{}))
2925
263M
    {
2926
263M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
263M
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
1.19M
    {
2926
1.19M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
1.19M
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
535k
    {
2926
535k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
535k
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRKNSt3__15dequeIcNS6_9allocatorIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
715k
    {
2926
715k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
715k
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
12.8M
    {
2926
12.8M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
12.8M
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
326k
    {
2926
326k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
326k
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
12.4M
    {
2926
12.4M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
12.4M
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
6.11M
    {
2926
6.11M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
6.11M
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRKNSt3__15dequeIwNS6_9allocatorIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
6.24M
    {
2926
6.24M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
6.24M
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
219M
    {
2926
219M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
219M
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2925
3.05M
    {
2926
3.05M
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2927
3.05M
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINSt3__111__wrap_iterIPcEESB_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
2928
};
2929
2930
}  // namespace detail::end_
2931
2932
inline constexpr auto end = detail::end_::fn{};
2933
2934
namespace detail {
2935
struct range_concept {
2936
    template <typename T>
2937
    auto requires_(T& t) -> decltype(ranges::begin(t), ranges::end(t));
2938
};
2939
}  // namespace detail
2940
2941
template <typename T>
2942
inline constexpr bool range = detail::requires_<detail::range_concept, T>;
2943
2944
template <typename T>
2945
using iterator_t = decltype(ranges::begin(std::declval<T&>()));
2946
2947
template <typename R>
2948
using sentinel_t =
2949
    std::enable_if_t<range<R>, decltype(ranges::end(std::declval<R&>()))>;
2950
2951
template <typename R>
2952
using range_difference_t =
2953
    std::enable_if_t<range<R>, iter_difference_t<iterator_t<R>>>;
2954
2955
template <typename R>
2956
using range_value_t = std::enable_if_t<range<R>, iter_value_t<iterator_t<R>>>;
2957
2958
template <typename R>
2959
using range_reference_t =
2960
    std::enable_if_t<range<R>, iter_reference_t<iterator_t<R>>>;
2961
2962
namespace detail {
2963
template <typename, typename = void>
2964
inline constexpr bool is_object_pointer_v = false;
2965
template <typename P>
2966
inline constexpr bool
2967
    is_object_pointer_v<P,
2968
                        std::enable_if_t<std::is_pointer_v<P> &&
2969
                                         std::is_object_v<iter_value_t<P>>>> =
2970
        true;
2971
2972
namespace data_ {
2973
2974
struct fn {
2975
private:
2976
    template <typename T,
2977
              typename D = decltype(decay_copy(SCN_DECLVAL(T&).data()))>
2978
    static constexpr auto impl(T& t, priority_tag<1>) noexcept(noexcept(
2979
        decay_copy(t.data()))) -> std::enable_if_t<is_object_pointer_v<D>, D>
2980
20.2M
    {
2981
20.2M
        return t.data();
2982
20.2M
    }
std::__1::enable_if<is_object_pointer_v<char const*>, char const*>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const, char const*>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2980
597k
    {
2981
597k
        return t.data();
2982
597k
    }
std::__1::enable_if<is_object_pointer_v<wchar_t const*>, wchar_t const*>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const, wchar_t const*>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2980
6.24M
    {
2981
6.24M
        return t.data();
2982
6.24M
    }
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<char const*>, char const*>::type scn::v4::ranges::detail::data_::fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >, char const*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<wchar_t const*>, wchar_t const*>::type scn::v4::ranges::detail::data_::fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, wchar_t const*>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, scn::v4::detail::priority_tag<1ul>)
std::__1::enable_if<is_object_pointer_v<char const*>, char const*>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char const*>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2980
2.18M
    {
2981
2.18M
        return t.data();
2982
2.18M
    }
std::__1::enable_if<is_object_pointer_v<wchar_t const*>, wchar_t const*>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t const*>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2980
11.2M
    {
2981
11.2M
        return t.data();
2982
11.2M
    }
2983
2984
    template <typename T>
2985
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(
2986
        noexcept(scn::ranges::begin(SCN_FWD(t))))
2987
        -> std::enable_if_t<
2988
            is_object_pointer_v<decltype(scn::ranges::begin(SCN_FWD(t)))>,
2989
            decltype(scn::ranges::begin(SCN_FWD(t)))>
2990
0
    {
2991
0
        return scn::ranges::begin(SCN_FWD(t));
2992
0
    }
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<decltype (scn::v4::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>, decltype (scn::v4::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&, scn::v4::detail::priority_tag<0ul>)
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<decltype (scn::v4::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>, decltype (scn::v4::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&, scn::v4::detail::priority_tag<0ul>)
2993
2994
public:
2995
    template <typename T>
2996
    constexpr auto operator()(T&& t) const
2997
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<1>{})))
2998
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<1>{}))
2999
20.2M
    {
3000
20.2M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
3001
20.2M
    }
_ZNK3scn2v46ranges6detail5data_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2999
597k
    {
3000
597k
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
3001
597k
    }
_ZNK3scn2v46ranges6detail5data_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2999
6.24M
    {
3000
6.24M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
3001
6.24M
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5data_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5data_2fnclIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
_ZNK3scn2v46ranges6detail5data_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2999
2.18M
    {
3000
2.18M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
3001
2.18M
    }
_ZNK3scn2v46ranges6detail5data_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
2999
11.2M
    {
3000
11.2M
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
3001
11.2M
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5data_2fnclINS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5data_2fnclINS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
3002
};
3003
3004
}  // namespace data_
3005
}  // namespace detail
3006
3007
inline constexpr auto data = detail::data_::fn{};
3008
3009
template <typename T>
3010
inline constexpr bool disable_sized_range = false;
3011
3012
namespace detail::size_ {
3013
3014
template <typename T>
3015
void size(T&&) = delete;
3016
template <typename T>
3017
void size(T&) = delete;
3018
3019
struct fn {
3020
private:
3021
    template <typename T, std::size_t N>
3022
    static constexpr std::size_t impl(const T (&&)[N], priority_tag<3>) noexcept
3023
    {
3024
        return N;
3025
    }
3026
3027
    template <typename T, std::size_t N>
3028
    static constexpr std::size_t impl(const T (&)[N], priority_tag<3>) noexcept
3029
    {
3030
        return N;
3031
    }
3032
3033
    template <typename T,
3034
              typename I = decltype(decay_copy(std::declval<T>().size()))>
3035
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept(
3036
        noexcept(decay_copy(SCN_FWD(t).size())))
3037
        -> std::enable_if_t<std::is_integral_v<I> &&
3038
                                !disable_sized_range<remove_cvref_t<T>>,
3039
                            I>
3040
9.64M
    {
3041
9.64M
        return decay_copy(SCN_FWD(t).size());
3042
9.64M
    }
_ZN3scn2v46ranges6detail5size_2fn4implIRKNS2_9subrange_8subrangeIPKcS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESF_E4typeEOSG_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
3040
597k
    {
3041
597k
        return decay_copy(SCN_FWD(t).size());
3042
597k
    }
_ZN3scn2v46ranges6detail5size_2fn4implIRKNS2_9subrange_8subrangeIPKwS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESF_E4typeEOSG_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
3040
6.24M
    {
3041
6.24M
        return decay_copy(SCN_FWD(t).size());
3042
6.24M
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESF_E4typeEOSG_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESD_E4typeEOSE_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESD_E4typeEOSE_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESE_E4typeEOSF_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESG_E4typeEOSH_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESE_E4typeEOSF_NS0_6detail12priority_tagILm2EEE
_ZN3scn2v46ranges6detail5size_2fn4implIRNS2_9subrange_8subrangeIPKcS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESE_E4typeEOSF_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
3040
264k
    {
3041
264k
        return decay_copy(SCN_FWD(t).size());
3042
264k
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implINS2_9subrange_8subrangeIPKcS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESD_E4typeEOSE_NS0_6detail12priority_tagILm2EEE
_ZN3scn2v46ranges6detail5size_2fn4implIRNS2_9subrange_8subrangeIPKwS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESE_E4typeEOSF_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
3040
2.54M
    {
3041
2.54M
        return decay_copy(SCN_FWD(t).size());
3042
2.54M
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implINS2_9subrange_8subrangeIPKwS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESD_E4typeEOSE_NS0_6detail12priority_tagILm2EEE
3043
3044
    template <typename T,
3045
              typename I = decltype(decay_copy(size(std::declval<T>())))>
3046
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
3047
        noexcept(decay_copy(size(SCN_FWD(t)))))
3048
        -> std::enable_if_t<std::is_integral_v<I> &&
3049
                                !disable_sized_range<remove_cvref_t<T>>,
3050
                            I>
3051
    {
3052
        return decay_copy(size(SCN_FWD(t)));
3053
    }
3054
3055
    template <typename T,
3056
              typename I = decltype(scn::ranges::begin(SCN_DECLVAL(T))),
3057
              typename S = decltype(scn::ranges::end(SCN_DECLVAL(T))),
3058
              typename D = decltype(static_cast<std::size_t>(SCN_DECLVAL(S) -
3059
                                                             SCN_DECLVAL(I)))>
3060
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(noexcept(
3061
        static_cast<size_t>(scn::ranges::end(t) - scn::ranges::begin(t))))
3062
        -> std::enable_if_t<!std::is_array_v<remove_cvref_t<T>> &&
3063
                                sized_sentinel_for<S, I> && forward_iterator<I>,
3064
                            D>
3065
    {
3066
        return static_cast<size_t>(scn::ranges::end(t) - scn::ranges::begin(t));
3067
    }
3068
3069
public:
3070
    template <typename T>
3071
    constexpr auto operator()(T&& t) const
3072
        noexcept(noexcept(fn::impl(std::forward<T>(t), priority_tag<3>{})))
3073
            -> decltype(fn::impl(std::forward<T>(t), priority_tag<3>{}))
3074
9.64M
    {
3075
9.64M
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
3076
9.64M
    }
_ZNK3scn2v46ranges6detail5size_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Line
Count
Source
3074
597k
    {
3075
597k
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
3076
597k
    }
_ZNK3scn2v46ranges6detail5size_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Line
Count
Source
3074
6.24M
    {
3075
6.24M
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
3076
6.24M
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSE_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSC_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSC_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSF_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
_ZNK3scn2v46ranges6detail5size_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSC_
Line
Count
Source
3074
264k
    {
3075
264k
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
3076
264k
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclINS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSB_
_ZNK3scn2v46ranges6detail5size_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSC_
Line
Count
Source
3074
2.54M
    {
3075
2.54M
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
3076
2.54M
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclINS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSB_
3077
};
3078
3079
}  // namespace detail::size_
3080
3081
inline constexpr auto size = detail::size_::fn{};
3082
3083
namespace detail {
3084
namespace ssize_ {
3085
struct fn {
3086
private:
3087
    template <typename T>
3088
    using ssize_return_t = std::conditional_t<sizeof(range_difference_t<T>) <
3089
                                                  sizeof(std::ptrdiff_t),
3090
                                              std::ptrdiff_t,
3091
                                              range_difference_t<T>>;
3092
3093
    template <typename T>
3094
    static constexpr auto impl(T&& t) noexcept(
3095
        noexcept(ranges::size(std::forward<T>(t))))
3096
        -> decltype(ranges::size(std::forward<T>(t)), ssize_return_t<T>())
3097
0
    {
3098
0
        return static_cast<ssize_return_t<T>>(ranges::size(std::forward<T>(t)));
3099
0
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail6ssize_2fn4implIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISE_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSE_EEEEE15difference_typeEE4typeELm8EElSN_E4typeE_EEOSE_
Unexecuted instantiation: _ZN3scn2v46ranges6detail6ssize_2fn4implIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISD_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSD_EEEEE15difference_typeEE4typeELm8EElSM_E4typeE_EEOSD_
Unexecuted instantiation: _ZN3scn2v46ranges6detail6ssize_2fn4implIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISF_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSF_EEEEE15difference_typeEE4typeELm8EElSO_E4typeE_EEOSF_
Unexecuted instantiation: _ZN3scn2v46ranges6detail6ssize_2fn4implIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISD_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSD_EEEEE15difference_typeEE4typeELm8EElSM_E4typeE_EEOSD_
3100
3101
public:
3102
    template <typename T>
3103
    constexpr auto operator()(T&& t) const
3104
        noexcept(noexcept(fn::impl(std::forward<T>(t))))
3105
            -> decltype(fn::impl(std::forward<T>(t)))
3106
0
    {
3107
0
        return fn::impl(std::forward<T>(t));
3108
0
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6ssize_2fnclIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSE_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6ssize_2fnclIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSD_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6ssize_2fnclIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6ssize_2fnclIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSD_
3109
};
3110
}  // namespace ssize_
3111
}  // namespace detail
3112
3113
inline constexpr auto ssize = detail::ssize_::fn{};
3114
3115
namespace detail::empty_ {
3116
struct fn {
3117
private:
3118
    template <typename T>
3119
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept(
3120
        noexcept(static_cast<bool>(SCN_FWD(t).empty())))
3121
        -> decltype(static_cast<bool>(SCN_FWD(t).empty()))
3122
    {
3123
        return static_cast<bool>(SCN_FWD(t).empty());
3124
    }
3125
3126
    template <typename T>
3127
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
3128
        noexcept(ranges::size(SCN_FWD(t)) == 0))
3129
        -> decltype(ranges::size(SCN_FWD(t)) == 0)
3130
    {
3131
        return ranges::size(SCN_FWD(t)) == 0;
3132
    }
3133
3134
    template <typename T,
3135
              typename I = decltype(ranges::begin(std::declval<T>()))>
3136
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(
3137
        noexcept(ranges::begin(t) == ranges::end(t)))
3138
        -> std::enable_if_t<forward_iterator<I>,
3139
                            decltype(ranges::begin(t) == ranges::end(t))>
3140
    {
3141
        return ranges::begin(t) == ranges::end(t);
3142
    }
3143
3144
public:
3145
    template <typename T>
3146
    constexpr auto operator()(T&& t) const
3147
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<2>{})))
3148
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<2>{}))
3149
    {
3150
        return fn::impl(SCN_FWD(t), priority_tag<2>{});
3151
    }
3152
};
3153
}  // namespace detail::empty_
3154
3155
inline constexpr auto empty = detail::empty_::fn{};
3156
3157
/**
3158
 * \see `std::ranges::borrowed_range`
3159
 */
3160
template <typename T>
3161
inline constexpr bool borrowed_range =
3162
    range<T> && (std::is_lvalue_reference_v<T> ||
3163
                 enable_borrowed_range<detail::remove_cvref_t<T>>);
3164
3165
namespace detail {
3166
struct sized_range_concept {
3167
    template <typename T>
3168
    auto requires_(T& t) -> decltype(ranges::size(t));
3169
};
3170
}  // namespace detail
3171
3172
template <typename T>
3173
inline constexpr bool sized_range =
3174
    range<T> && !disable_sized_range<detail::remove_cvref_t<T>> &&
3175
    detail::requires_<detail::sized_range_concept, T>;
3176
3177
namespace detail {
3178
struct output_range_concept {
3179
    template <typename, typename>
3180
    static auto test(long) -> std::false_type;
3181
3182
    template <typename R, typename T>
3183
    static auto test(int)
3184
        -> std::enable_if_t<range<R> && output_iterator<iterator_t<R>, T>,
3185
                            std::true_type>;
3186
};
3187
}  // namespace detail
3188
3189
template <typename R, typename T>
3190
inline constexpr bool output_range =
3191
    decltype(detail::output_range_concept::test<R, T>(0))::value;
3192
3193
namespace detail {
3194
struct input_range_concept {
3195
    template <typename>
3196
    static auto test(long) -> std::false_type;
3197
3198
    template <typename T>
3199
    static auto test(int)
3200
        -> std::enable_if_t<range<T> && input_iterator<iterator_t<T>>,
3201
                            std::true_type>;
3202
};
3203
}  // namespace detail
3204
3205
template <typename T>
3206
inline constexpr bool input_range =
3207
    decltype(detail::input_range_concept::test<T>(0))::value;
3208
3209
namespace detail {
3210
struct forward_range_concept {
3211
    template <typename>
3212
    static auto test(long) -> std::false_type;
3213
3214
    template <typename T>
3215
    static auto test(int)
3216
        -> std::enable_if_t<input_range<T> && forward_iterator<iterator_t<T>>,
3217
                            std::true_type>;
3218
};
3219
}  // namespace detail
3220
3221
template <typename T>
3222
inline constexpr bool forward_range =
3223
    decltype(detail::forward_range_concept::test<T>(0))::value;
3224
3225
namespace detail {
3226
struct bidirectional_range_concept {
3227
    template <typename>
3228
    static auto test(long) -> std::false_type;
3229
3230
    template <typename T>
3231
    static auto test(int)
3232
        -> std::enable_if_t<forward_range<T> &&
3233
                                bidirectional_iterator<iterator_t<T>>,
3234
                            std::true_type>;
3235
};
3236
}  // namespace detail
3237
3238
template <typename T>
3239
inline constexpr bool bidirectional_range =
3240
    decltype(detail::bidirectional_range_concept::test<T>(0))::value;
3241
3242
namespace detail {
3243
struct random_access_range_concept {
3244
    template <typename>
3245
    static auto test(long) -> std::false_type;
3246
3247
    template <typename T>
3248
    static auto test(int)
3249
        -> std::enable_if_t<bidirectional_range<T> &&
3250
                                random_access_iterator<iterator_t<T>>,
3251
                            std::true_type>;
3252
};
3253
}  // namespace detail
3254
3255
template <typename T>
3256
inline constexpr bool random_access_range =
3257
    decltype(detail::random_access_range_concept::test<T>(0))::value;
3258
3259
namespace detail {
3260
// FIXME: Not to spec
3261
// We only require random_access_iterator, not contiguous_iterator
3262
// This is so that vector::iterator, string::iterator etc can model
3263
// contiguous_range.
3264
// If we do range-v3-style deep integration with iterator_traits then
3265
// this could be fixed
3266
struct contiguous_range_concept {
3267
    template <typename>
3268
    static auto test(long) -> std::false_type;
3269
3270
    template <typename T>
3271
    static auto test(int) -> std::enable_if_t<
3272
        random_access_range<T> && /* contiguous_iterator<iterator_t<T>>
3273
                                   * &&
3274
                                   */
3275
            detail::requires_<contiguous_range_concept, T>,
3276
        std::true_type>;
3277
3278
    template <typename T>
3279
    auto requires_(T& t)
3280
        -> decltype(requires_expr<std::is_same_v<
3281
                        decltype(ranges::data(t)),
3282
                        std::add_pointer_t<range_reference_t<T>>>>{});
3283
};
3284
}  // namespace detail
3285
3286
template <typename R>
3287
inline constexpr bool contiguous_range =
3288
    decltype(detail::contiguous_range_concept::test<R>(0))::value;
3289
3290
namespace detail {
3291
struct common_range_concept {
3292
    template <typename>
3293
    static auto test(long) -> std::false_type;
3294
3295
    template <typename T>
3296
    static auto test(int)
3297
        -> std::enable_if_t<range<T> &&
3298
                                std::is_same_v<iterator_t<T>, sentinel_t<T>>,
3299
                            std::true_type>;
3300
};
3301
}  // namespace detail
3302
3303
template <typename T>
3304
inline constexpr bool common_range =
3305
    decltype(detail::common_range_concept::test<T>(0))::value;
3306
3307
/**
3308
 * \see `std::ranges::dangling`
3309
 */
3310
struct dangling {
3311
    constexpr dangling() noexcept = default;
3312
3313
    template <typename... Args>
3314
    constexpr dangling(Args&&...) noexcept
3315
    {
3316
    }
3317
};
3318
3319
/**
3320
 * \see `std::ranges::borrowed_iterator_t`
3321
 */
3322
template <typename R>
3323
using borrowed_iterator_t =
3324
    std::conditional_t<borrowed_range<R>, iterator_t<R>, dangling>;
3325
3326
template <typename D>
3327
class view_interface {
3328
    static_assert(std::is_class<D>::value, "");
3329
    static_assert(std::is_same_v<D, std::remove_cv_t<D>>, "");
3330
3331
private:
3332
    constexpr D& derived() noexcept
3333
13.4M
    {
3334
13.4M
        return static_cast<D&>(*this);
3335
13.4M
    }
scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::derived()
Line
Count
Source
3333
2.18M
    {
3334
2.18M
        return static_cast<D&>(*this);
3335
2.18M
    }
scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::derived()
Line
Count
Source
3333
11.2M
    {
3334
11.2M
        return static_cast<D&>(*this);
3335
11.2M
    }
3336
3337
    constexpr const D& derived() const noexcept
3338
6.83M
    {
3339
6.83M
        return static_cast<const D&>(*this);
3340
6.83M
    }
scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::derived() const
Line
Count
Source
3338
597k
    {
3339
597k
        return static_cast<const D&>(*this);
3340
597k
    }
scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::derived() const
Line
Count
Source
3338
6.24M
    {
3339
6.24M
        return static_cast<const D&>(*this);
3340
6.24M
    }
3341
3342
public:
3343
    template <typename R = D>
3344
    [[nodiscard]] constexpr auto empty()
3345
        -> std::enable_if_t<forward_range<R>, bool>
3346
    {
3347
        return ranges::begin(derived()) == ranges::end(derived());
3348
    }
3349
3350
    template <typename R = D>
3351
    [[nodiscard]] constexpr auto empty() const
3352
        -> std::enable_if_t<forward_range<const R>, bool>
3353
    {
3354
        return ranges::begin(derived()) == ranges::end(derived());
3355
    }
3356
3357
    template <typename R = D,
3358
              typename = decltype(ranges::empty(std::declval<R&>()))>
3359
    constexpr explicit operator bool()
3360
    {
3361
        return !ranges::empty(derived());
3362
    }
3363
3364
    template <typename R = D,
3365
              typename = decltype(ranges::empty(std::declval<const R&>()))>
3366
    constexpr explicit operator bool() const
3367
    {
3368
        return !ranges::empty(derived());
3369
    }
3370
3371
    template <typename R = D,
3372
              typename = std::enable_if_t<contiguous_iterator<iterator_t<R>>>>
3373
    constexpr auto data()
3374
13.4M
    {
3375
13.4M
        return detail::to_address(ranges::begin(derived()));
3376
13.4M
    }
auto scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::data<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void>()
Line
Count
Source
3374
2.18M
    {
3375
2.18M
        return detail::to_address(ranges::begin(derived()));
3376
2.18M
    }
auto scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::data<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>()
Line
Count
Source
3374
11.2M
    {
3375
11.2M
        return detail::to_address(ranges::begin(derived()));
3376
11.2M
    }
3377
3378
    template <typename R = D,
3379
              typename = std::enable_if_t<
3380
                  range<const R> && contiguous_iterator<iterator_t<const R>>>>
3381
    constexpr auto data() const
3382
6.83M
    {
3383
6.83M
        return detail::to_address(ranges::begin(derived()));
3384
6.83M
    }
auto scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::data<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void>() const
Line
Count
Source
3382
597k
    {
3383
597k
        return detail::to_address(ranges::begin(derived()));
3384
597k
    }
auto scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::data<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>() const
Line
Count
Source
3382
6.24M
    {
3383
6.24M
        return detail::to_address(ranges::begin(derived()));
3384
6.24M
    }
3385
3386
    template <typename R = D,
3387
              typename = std::enable_if_t<
3388
                  forward_range<R> &&
3389
                  sized_sentinel_for<sentinel_t<R>, iterator_t<R>>>>
3390
    constexpr auto size()
3391
    {
3392
        return ranges::end(derived()) - ranges::begin(derived());
3393
    }
3394
3395
    template <typename R = D,
3396
              typename = std::enable_if_t<
3397
                  forward_range<const R> &&
3398
                  sized_sentinel_for<sentinel_t<const R>, iterator_t<const R>>>>
3399
    constexpr auto size() const
3400
    {
3401
        return ranges::end(derived()) - ranges::begin(derived());
3402
    }
3403
3404
#if 0
3405
    template <typename R = D, typename = std::enable_if_t<forward_range<R>>>
3406
    constexpr decltype(auto) front()
3407
    {
3408
        return *ranges::begin(derived());
3409
    }
3410
3411
    template <typename R = D,
3412
              typename = std::enable_if_t<forward_range<const R>>>
3413
    constexpr decltype(auto) front() const
3414
    {
3415
        return *ranges::begin(derived());
3416
    }
3417
3418
    template <
3419
        typename R = D,
3420
        typename = std::enable_if_t<bidirectional_range<R> && common_range<R>>>
3421
    constexpr decltype(auto) back()
3422
    {
3423
        return *ranges::prev(ranges::end(derived()));
3424
    }
3425
3426
    template <typename R = D,
3427
              typename = std::enable_if_t<bidirectional_range<const R> &&
3428
                                          common_range<const R>>>
3429
    constexpr decltype(auto) back() const
3430
    {
3431
        return *ranges::prev(ranges::end(derived()));
3432
    }
3433
3434
    template <typename R = D,
3435
              typename = std::enable_if_t<random_access_range<R>>>
3436
    constexpr decltype(auto) operator[](iter_difference_t<iterator_t<R>> n)
3437
    {
3438
        return ranges::begin(derived())[n];
3439
    }
3440
#endif
3441
3442
    template <typename R = D,
3443
              typename = std::enable_if_t<random_access_range<const R>>>
3444
    constexpr decltype(auto) operator[](
3445
        iter_difference_t<iterator_t<const R>> n) const
3446
    {
3447
        return ranges::begin(derived())[n];
3448
    }
3449
};
3450
3451
namespace detail::subrange_ {
3452
3453
template <typename I, typename S = I>
3454
class subrange : public view_interface<subrange<I, S>> {
3455
    static_assert(input_or_output_iterator<I>);
3456
    static_assert(sentinel_for<S, I>);
3457
3458
public:
3459
10.3M
    subrange() = default;
scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>::subrange()
Line
Count
Source
3459
597k
    subrange() = default;
scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >::subrange()
Line
Count
Source
3459
357k
    subrange() = default;
scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::subrange()
Line
Count
Source
3459
6.24M
    subrange() = default;
scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >::subrange()
Line
Count
Source
3459
3.12M
    subrange() = default;
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>::subrange()
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >::subrange()
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>::subrange()
3460
3461
    template <typename I_,
3462
              std::enable_if_t<std::is_convertible_v<I_, I>>* = nullptr>
3463
    constexpr subrange(I_ i, S s)
3464
305M
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
305M
    {
3466
305M
    }
_ZN3scn2v46ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS7_PKS8_lLl4096EEESC_EC2ISC_TnPNS5_9enable_ifIXsr3stdE16is_convertible_vIT_SC_EEvE4typeELPv0EEESG_SC_
Line
Count
Source
3464
684k
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
684k
    {
3466
684k
    }
_ZN3scn2v46ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS7_PKS8_lLl1024EEESC_EC2ISC_TnPNS5_9enable_ifIXsr3stdE16is_convertible_vIT_SC_EEvE4typeELPv0EEESG_SC_
Line
Count
Source
3464
6.18M
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
6.18M
    {
3466
6.18M
    }
_ZN3scn2v46ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S8_EEvE4typeELPv0EEESE_S9_
Line
Count
Source
3464
5.22M
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
5.22M
    {
3466
5.22M
    }
_ZN3scn2v46ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S8_EEvE4typeELPv0EEESE_S9_
Line
Count
Source
3464
88.1M
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
88.1M
    {
3466
88.1M
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEENS5_15take_width_viewINS4_ISB_SC_EEE8sentinelILb1EEEEC2ISD_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SD_EEvE4typeELPv0EEESN_SI_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEENS5_15take_width_viewINS4_ISB_SC_EEE8sentinelILb1EEEEENSE_ISG_E8sentinelILb1EEEEC2ISJ_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SJ_EEvE4typeELPv0EEESR_SM_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEESD_EC2ISD_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SD_EEvE4typeELPv0EEESI_SD_
_ZN3scn2v46ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorES8_EC2IS8_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S8_EEvE4typeELPv0EEESD_S8_
Line
Count
Source
3464
334k
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
334k
    {
3466
334k
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EENS5_15take_width_viewINSt3__117basic_string_viewIcNSC_11char_traitsIcEEEEE8sentinelILb1EEEEC2ISA_TnPNSC_9enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESN_SJ_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_IPKcS9_EENS5_15take_width_viewINSt3__117basic_string_viewIcNSC_11char_traitsIcEEEEE8sentinelILb1EEEEENSB_ISH_E8sentinelILb1EEEEC2ISK_TnPNSC_9enable_ifIXsr3stdE16is_convertible_vIT_SK_EEvE4typeELPv0EEESR_SN_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EESA_EC2ISA_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESF_SA_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EENS5_15take_width_viewINS4_IS9_S9_EEE8sentinelILb1EEEEC2ISA_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESK_SF_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEENS5_15take_width_viewINS4_ISB_SC_EEE8sentinelILb1EEEEC2ISD_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SD_EEvE4typeELPv0EEESN_SI_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEENS5_15take_width_viewINS4_ISB_SC_EEE8sentinelILb1EEEEENSE_ISG_E8sentinelILb1EEEEC2ISJ_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SJ_EEvE4typeELPv0EEESR_SM_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEESD_EC2ISD_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SD_EEvE4typeELPv0EEESI_SD_
_ZN3scn2v46ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorES8_EC2IS8_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S8_EEvE4typeELPv0EEESD_S8_
Line
Count
Source
3464
3.07M
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
3.07M
    {
3466
3.07M
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EENS5_15take_width_viewINSt3__117basic_string_viewIwNSC_11char_traitsIwEEEEE8sentinelILb1EEEEC2ISA_TnPNSC_9enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESN_SJ_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_IPKwS9_EENS5_15take_width_viewINSt3__117basic_string_viewIwNSC_11char_traitsIwEEEEE8sentinelILb1EEEEENSB_ISH_E8sentinelILb1EEEEC2ISK_TnPNSC_9enable_ifIXsr3stdE16is_convertible_vIT_SK_EEvE4typeELPv0EEESR_SN_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EESA_EC2ISA_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESF_SA_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EENS5_15take_width_viewINS4_IS9_S9_EEE8sentinelILb1EEEEC2ISA_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESK_SF_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_IPKcS9_EENS5_15take_width_viewINS4_IS9_S9_EEE8sentinelILb1EEEEENSB_ISD_E8sentinelILb1EEEEC2ISG_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SG_EEvE4typeELPv0EEESO_SJ_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_IPKwS9_EENS5_15take_width_viewINS4_IS9_S9_EEE8sentinelILb1EEEEENSB_ISD_E8sentinelILb1EEEEC2ISG_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SG_EEvE4typeELPv0EEESO_SJ_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEES8_EC2IS8_TnPNS5_9enable_ifIXsr3stdE16is_convertible_vIT_S8_EEvE4typeELPv0EEESC_S8_
_ZN3scn2v46ranges6detail9subrange_8subrangeIPKcS6_EC2IS6_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S6_EEvE4typeELPv0EEESB_S6_
Line
Count
Source
3464
4.11M
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
4.11M
    {
3466
4.11M
    }
_ZN3scn2v46ranges6detail9subrange_8subrangeIPKwS6_EC2IS6_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S6_EEvE4typeELPv0EEESB_S6_
Line
Count
Source
3464
197M
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3465
197M
    {
3466
197M
    }
3467
3468
    template <
3469
        typename R,
3470
        std::enable_if_t<is_not_self<R, subrange> && borrowed_range<R> &&
3471
                         std::is_convertible_v<iterator_t<R>, I> &&
3472
                         std::is_convertible_v<sentinel_t<R>, S>>* = nullptr>
3473
    constexpr subrange(R&& r)
3474
        : m_iterator(scn::ranges::begin(r)), m_sentinel(scn::ranges::end(r))
3475
    {
3476
    }
3477
3478
    constexpr I begin() const
3479
799M
    {
3480
799M
        return m_iterator;
3481
799M
    }
scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>::begin() const
Line
Count
Source
3479
7.13M
    {
3480
7.13M
        return m_iterator;
3481
7.13M
    }
scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >::begin() const
Line
Count
Source
3479
1.01M
    {
3480
1.01M
        return m_iterator;
3481
1.01M
    }
scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::begin() const
Line
Count
Source
3479
517M
    {
3480
517M
        return m_iterator;
3481
517M
    }
scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >::begin() const
Line
Count
Source
3479
9.23M
    {
3480
9.23M
        return m_iterator;
3481
9.23M
    }
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>::begin() const
Line
Count
Source
3479
14.2M
    {
3480
14.2M
        return m_iterator;
3481
14.2M
    }
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>::begin() const
Line
Count
Source
3479
247M
    {
3480
247M
        return m_iterator;
3481
247M
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::begin() const
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>::begin() const
Line
Count
Source
3479
350k
    {
3480
350k
        return m_iterator;
3481
350k
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::begin() const
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>::begin() const
Line
Count
Source
3479
3.09M
    {
3480
3.09M
        return m_iterator;
3481
3.09M
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >::begin() const
3482
    constexpr S end() const
3483
976M
    {
3484
976M
        return m_sentinel;
3485
976M
    }
scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>::end() const
Line
Count
Source
3483
3.43M
    {
3484
3.43M
        return m_sentinel;
3485
3.43M
    }
scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >::end() const
Line
Count
Source
3483
13.1M
    {
3484
13.1M
        return m_sentinel;
3485
13.1M
    }
scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::end() const
Line
Count
Source
3483
484M
    {
3484
484M
        return m_sentinel;
3485
484M
    }
scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >::end() const
Line
Count
Source
3483
222M
    {
3484
222M
        return m_sentinel;
3485
222M
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::end() const
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>::end() const
Line
Count
Source
3483
12.7M
    {
3484
12.7M
        return m_sentinel;
3485
12.7M
    }
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>::end() const
Line
Count
Source
3483
350k
    {
3484
350k
        return m_sentinel;
3485
350k
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::end() const
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>::end() const
Line
Count
Source
3483
236M
    {
3484
236M
        return m_sentinel;
3485
236M
    }
scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>::end() const
Line
Count
Source
3483
3.09M
    {
3484
3.09M
        return m_sentinel;
3485
3.09M
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >::end() const
3486
3487
    SCN_NODISCARD constexpr bool empty() const
3488
    {
3489
        return m_iterator == m_sentinel;
3490
    }
3491
3492
    template <typename I_ = I,
3493
              std::enable_if_t<sized_sentinel_for<S, I_>>* = nullptr>
3494
    constexpr std::size_t size() const
3495
17.4M
    {
3496
17.4M
        return static_cast<size_t>(m_sentinel - m_iterator);
3497
17.4M
    }
_ZNK3scn2v46ranges6detail9subrange_8subrangeIPKcS6_E4sizeIS6_TnPNSt3__19enable_ifIX18sized_sentinel_forIS6_T_EEvE4typeELPv0EEEmv
Line
Count
Source
3495
2.51M
    {
3496
2.51M
        return static_cast<size_t>(m_sentinel - m_iterator);
3497
2.51M
    }
_ZNK3scn2v46ranges6detail9subrange_8subrangeIPKwS6_E4sizeIS6_TnPNSt3__19enable_ifIX18sized_sentinel_forIS6_T_EEvE4typeELPv0EEEmv
Line
Count
Source
3495
14.9M
    {
3496
14.9M
        return static_cast<size_t>(m_sentinel - m_iterator);
3497
14.9M
    }
3498
3499
private:
3500
    SCN_NO_UNIQUE_ADDRESS I m_iterator{};
3501
    SCN_NO_UNIQUE_ADDRESS S m_sentinel{};
3502
};
3503
3504
template <typename I,
3505
          typename S,
3506
          std::enable_if_t<input_or_output_iterator<I> && sentinel_for<S, I>>* =
3507
              nullptr>
3508
subrange(I, S) -> subrange<I, S>;
3509
3510
template <typename R, std::enable_if_t<borrowed_range<R>>* = nullptr>
3511
subrange(R&&) -> subrange<iterator_t<R>, sentinel_t<R>>;
3512
3513
}  // namespace detail::subrange_
3514
3515
/**
3516
 * \see `std::ranges::subrange`
3517
 */
3518
using detail::subrange_::subrange;
3519
3520
template <typename I, typename S>
3521
inline constexpr bool enable_borrowed_range<subrange<I, S>> = true;
3522
3523
struct default_sentinel_t {};
3524
inline constexpr default_sentinel_t default_sentinel{};
3525
3526
}  // namespace ranges
3527
3528
namespace detail {
3529
3530
namespace char_t_fn {
3531
template <typename T, typename = typename T::value_type>
3532
constexpr auto impl_nonarray(priority_tag<2>)
3533
0
{
3534
0
    return tag_type<typename T::value_type>{};
3535
0
}
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<std::__1::basic_string_view<char, std::__1::char_traits<char> >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char>(scn::v4::detail::priority_tag<2ul>)
3536
template <typename T, typename = decltype(SCN_DECLVAL(T&).begin())>
3537
constexpr auto impl_nonarray(priority_tag<1>)
3538
0
{
3539
0
    return tag_type<remove_cvref_t<decltype(*(SCN_DECLVAL(T&).begin()))>>{};
3540
0
}
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char const*>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t const*>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
3541
template <typename T>
3542
constexpr auto impl_nonarray(priority_tag<0>)
3543
{
3544
    return tag_type<remove_cvref_t<decltype(*begin(SCN_DECLVAL(T&)))>>{};
3545
}
3546
3547
template <typename T,
3548
          typename = std::enable_if_t<ranges::range<remove_cvref_t<T>>>>
3549
constexpr auto impl()
3550
0
{
3551
0
    using T_nocvref = remove_cvref_t<T>;
3552
0
    if constexpr (std::is_array_v<T_nocvref>) {
3553
0
        return tag_type<std::remove_all_extents_t<T_nocvref>>{};
3554
0
    }
3555
0
    else {
3556
0
        return impl_nonarray<T_nocvref>(priority_tag<2>{});
3557
0
    }
3558
0
}
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, void>()
3559
3560
template <typename Range>
3561
using result = decltype(impl<Range>());
3562
}  // namespace char_t_fn
3563
3564
template <typename Range>
3565
using char_t = typename char_t_fn::result<Range>::type;
3566
3567
template <typename Range, typename = void>
3568
inline constexpr bool is_file_or_narrow_range_impl = false;
3569
template <>
3570
inline constexpr bool is_file_or_narrow_range_impl<std::FILE*, void> = true;
3571
template <typename Range>
3572
inline constexpr bool
3573
    is_file_or_narrow_range_impl<Range,
3574
                                 std::enable_if_t<ranges::range<Range>>> =
3575
        std::is_same_v<char_t<Range>, char>;
3576
3577
template <typename Range>
3578
inline constexpr bool is_file_or_narrow_range =
3579
    is_file_or_narrow_range_impl<remove_cvref_t<Range>>;
3580
3581
template <typename Range, typename = void>
3582
inline constexpr bool is_wide_range = false;
3583
template <typename Range>
3584
inline constexpr bool
3585
    is_wide_range<Range,
3586
                  std::enable_if_t<ranges::range<remove_cvref_t<Range>>>> =
3587
        std::is_same_v<char_t<Range>, wchar_t>;
3588
3589
template <typename R, bool Borrowed = ranges::borrowed_range<R>>
3590
struct borrowed_tail_subrange {
3591
    using type = ranges::subrange<ranges::iterator_t<R>, ranges::sentinel_t<R>>;
3592
};
3593
template <typename R>
3594
struct borrowed_tail_subrange<R, false> {
3595
    using type = ranges::dangling;
3596
};
3597
3598
/// Equivalent to
3599
/// `ranges::subrange<ranges::iterator_t<R>,
3600
/// ranges::sentinel_t<R>>` if `R` is a `borrowed_range`, and
3601
/// `ranges::dangling` otherwise.
3602
///
3603
/// Similar to `ranges::borrowed_subrange_t<R>`, expect this preserves
3604
/// the range sentinel.
3605
template <typename R>
3606
using borrowed_tail_subrange_t = typename borrowed_tail_subrange<R>::type;
3607
3608
}  // namespace detail
3609
3610
namespace ranges {
3611
template <typename CharT, typename Traits>
3612
inline constexpr bool
3613
    enable_borrowed_range<std::basic_string_view<CharT, Traits>> = true;
3614
}
3615
3616
/////////////////////////////////////////////////////////////////
3617
// Small generic algorithms
3618
/////////////////////////////////////////////////////////////////
3619
3620
namespace detail {
3621
3622
/**
3623
 * Implementation of `std::min_element` without including `<algorithm>`
3624
 */
3625
template <typename It>
3626
constexpr It min_element(It first, It last)
3627
{
3628
    if (first == last) {
3629
        return last;
3630
    }
3631
3632
    It smallest = first;
3633
    ++first;
3634
    for (; first != last; ++first) {
3635
        if (*first < *smallest) {
3636
            smallest = first;
3637
        }
3638
    }
3639
    return smallest;
3640
}
3641
3642
/**
3643
 * Implementation of `std::min` without including `<algorithm>`
3644
 */
3645
template <typename T>
3646
constexpr T min(T a, T b) noexcept
3647
{
3648
    return (b < a) ? b : a;
3649
}
3650
3651
template <bool IsConstexpr, typename T, typename Ptr = const T*>
3652
constexpr Ptr find(Ptr first, Ptr last, T value)
3653
{
3654
    for (; first != last; ++first) {
3655
        if (*first == value) {
3656
            return first;
3657
        }
3658
    }
3659
    return last;
3660
}
3661
3662
template <>
3663
inline const char* find<false, char>(const char* first,
3664
                                     const char* last,
3665
                                     char value)
3666
0
{
3667
0
    auto ptr = static_cast<const char*>(
3668
0
        std::memchr(first, value, static_cast<size_t>(last - first)));
3669
0
    return ptr != nullptr ? ptr : last;
3670
0
}
3671
3672
}  // namespace detail
3673
3674
/////////////////////////////////////////////////////////////////
3675
// Errors
3676
/////////////////////////////////////////////////////////////////
3677
3678
/**
3679
 * Error class.
3680
 * Used as a return value for functions without a success value.
3681
 * Doesn't have a success state, and isn't default constructible:
3682
 * use `expected<void, scan_error>` to achieve that.
3683
 *
3684
 * \ingroup result
3685
 */
3686
class SCN_TRIVIAL_ABI scan_error {
3687
public:
3688
    /// Error code
3689
    enum code {
3690
        /// Input ended unexpectedly.
3691
        end_of_input,
3692
3693
        /// Format string was invalid.
3694
        /// Often a compile-time error, if supported or enabled.
3695
        invalid_format_string,
3696
3697
        /// Scanned value was invalid for given type,
3698
        /// or a value of the given couldn't be scanned.
3699
        invalid_scanned_value,
3700
3701
        /// Literal character specified in format string not found in source.
3702
        invalid_literal,
3703
3704
        /// Too many fill characters scanned,
3705
        /// field precision (max width) exceeded.
3706
        invalid_fill,
3707
3708
        /// Scanned field width was shorter than
3709
        /// what was specified as the minimum field width.
3710
        length_too_short,
3711
3712
        /// Source range is in an invalid state,
3713
        /// failed to continue reading.
3714
        invalid_source_state,
3715
3716
        /// Value out of range, too large (higher than the maximum value)
3717
        /// i.e. >2^32 for int32
3718
        value_positive_overflow,
3719
3720
        /// Value out of range, too small (lower than the minimum value)
3721
        /// i.e. <2^32 for int32
3722
        value_negative_overflow,
3723
3724
        /// Value out of range, magnitude too small, sign +
3725
        /// (between 0 and the smallest subnormal float)
3726
        value_positive_underflow,
3727
3728
        /// Value out of range, magnitude too small, sign -
3729
        /// (between 0 and the smallest subnormal float)
3730
        value_negative_underflow,
3731
3732
        max_error
3733
    };
3734
3735
private:
3736
    using code_t = code;
3737
3738
public:
3739
    /// Constructs an error with `c` and `m`
3740
364k
    constexpr scan_error(code_t c, const char* m) noexcept : m_msg(m), m_code(c)
3741
364k
    {
3742
364k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_code);
3743
364k
    }
3744
3745
    constexpr explicit operator code_t() const noexcept
3746
0
    {
3747
0
        return m_code;
3748
0
    }
3749
3750
    /// Get error code
3751
    SCN_NODISCARD constexpr code_t code() const noexcept
3752
0
    {
3753
0
        return m_code;
3754
0
    }
3755
    /// Get error message
3756
    SCN_NODISCARD constexpr auto msg() const noexcept -> const char*
3757
0
    {
3758
0
        return m_msg;
3759
0
    }
3760
3761
    /// Convert to a `std::errc`.
3762
    SCN_NODISCARD constexpr std::errc to_errc() const noexcept
3763
0
    {
3764
0
        switch (m_code) {
3765
0
            case end_of_input:
3766
0
            case invalid_format_string:
3767
0
            case invalid_scanned_value:
3768
0
            case invalid_literal:
3769
0
            case invalid_fill:
3770
0
            case length_too_short:
3771
0
                return std::errc::invalid_argument;
3772
0
            case invalid_source_state:
3773
0
                return std::errc::io_error;
3774
0
            case value_positive_overflow:
3775
0
            case value_negative_overflow:
3776
0
            case value_positive_underflow:
3777
0
            case value_negative_underflow:
3778
0
                return std::errc::result_out_of_range;
3779
0
            case max_error:
3780
0
            default:
3781
0
                assert(false);
3782
0
                SCN_UNREACHABLE;
3783
0
        }
3784
0
    }
3785
3786
private:
3787
    const char* m_msg;
3788
    code_t m_code;
3789
};
3790
3791
constexpr bool operator==(scan_error a, scan_error b) noexcept
3792
0
{
3793
0
    return a.code() == b.code();
3794
0
}
3795
constexpr bool operator!=(scan_error a, scan_error b) noexcept
3796
0
{
3797
0
    return !(a == b);
3798
0
}
3799
3800
constexpr bool operator==(scan_error a, enum scan_error::code b) noexcept
3801
0
{
3802
0
    return a.code() == b;
3803
0
}
3804
constexpr bool operator!=(scan_error a, enum scan_error::code b) noexcept
3805
0
{
3806
0
    return !(a == b);
3807
0
}
3808
3809
constexpr bool operator==(enum scan_error::code a, scan_error b) noexcept
3810
0
{
3811
0
    return a == b.code();
3812
0
}
3813
constexpr bool operator!=(enum scan_error::code a, scan_error b) noexcept
3814
0
{
3815
0
    return !(a == b);
3816
0
}
3817
3818
namespace detail {
3819
// Intentionally not constexpr, to give out a compile-time error
3820
SCN_COLD scan_error handle_error(scan_error e);
3821
}  // namespace detail
3822
3823
#if SCN_HAS_EXCEPTIONS
3824
3825
namespace detail {
3826
3827
class scan_format_string_error_base : public std::runtime_error {
3828
public:
3829
    explicit scan_format_string_error_base(const std::string& what_arg)
3830
        : runtime_error(what_arg)
3831
0
    {
3832
0
    }
3833
3834
    explicit scan_format_string_error_base(std::false_type,
3835
                                           const char* what_arg)
3836
        : runtime_error(what_arg)
3837
0
    {
3838
0
    }
3839
3840
    explicit scan_format_string_error_base(std::true_type, const char* what_arg)
3841
        : runtime_error(what_arg), m_internal_literal_msg(what_arg)
3842
0
    {
3843
0
    }
3844
3845
    // Doing everything in a `detail::` base class
3846
    // to make this a `friend` inside that namespace
3847
    // (essentially private)
3848
    friend const char* get_internal_literal_msg(
3849
        const scan_format_string_error_base& m)
3850
0
    {
3851
0
        return m.m_internal_literal_msg;
3852
0
    }
3853
3854
private:
3855
    const char* m_internal_literal_msg{nullptr};
3856
};
3857
3858
}  // namespace detail
3859
3860
/**
3861
 * An exception type used to report format string parsing errors.
3862
 */
3863
class scan_format_string_error : public detail::scan_format_string_error_base {
3864
public:
3865
    // Not `using` constructors to document them explicitly.
3866
3867
    /**
3868
     * Construct from a `std::string`.
3869
     */
3870
    explicit scan_format_string_error(const std::string& what_arg)
3871
        : scan_format_string_error_base(what_arg)
3872
0
    {
3873
0
    }
3874
3875
    /**
3876
     * Construct from a `const char*`.
3877
     */
3878
    explicit scan_format_string_error(const char* what_arg)
3879
        : scan_format_string_error_base(std::false_type{}, what_arg)
3880
0
    {
3881
0
    }
3882
3883
    /**
3884
     * Construct from a string literal.
3885
     */
3886
    template <std::size_t N>
3887
    explicit scan_format_string_error(const char (&what_arg)[N])
3888
        : scan_format_string_error_base(std::true_type{}, what_arg)
3889
    {
3890
    }
3891
};
3892
#endif
3893
3894
/**
3895
 * An `expected<T, scan_error>`.
3896
 *
3897
 * Not a type alias to shorten template names.
3898
 *
3899
 * \ingroup result
3900
 */
3901
template <typename T>
3902
struct scan_expected : public expected<T, scan_error> {
3903
    using expected<T, scan_error>::expected;
3904
3905
    scan_expected(const expected<T, scan_error>& other)
3906
        : expected<T, scan_error>(other)
3907
    {
3908
    }
3909
    scan_expected(expected<T, scan_error>&& other)
3910
0
        : expected<T, scan_error>(SCN_MOVE(other))
3911
0
    {
3912
0
    }
Unexecuted instantiation: scn::v4::scan_expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::scan_expected(scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::scan_expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::scan_expected(scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::scan_expected<char const*>::scan_expected(scn::v4::expected<char const*, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::scan_expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>::scan_expected(scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::scan_expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::scan_expected(scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::scan_expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::scan_expected(scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::scan_expected<wchar_t const*>::scan_expected(scn::v4::expected<wchar_t const*, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::scan_expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>::scan_expected(scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>&&)
3913
};
3914
3915
namespace detail {
3916
constexpr auto unexpected_scan_error(enum scan_error::code c, const char* m)
3917
338k
{
3918
338k
    return unexpected(scan_error{c, m});
3919
338k
}
3920
3921
template <typename T>
3922
struct is_expected_impl<scan_expected<T>> : std::true_type {};
3923
}  // namespace detail
3924
3925
220k
#define SCN_TRY_IMPL_CONCAT(a, b)  a##b
3926
220k
#define SCN_TRY_IMPL_CONCAT2(a, b) SCN_TRY_IMPL_CONCAT(a, b)
3927
220k
#define SCN_TRY_TMP                SCN_TRY_IMPL_CONCAT2(_scn_try_tmp_, __LINE__)
3928
3929
#define SCN_TRY_DISCARD(x)                                      \
3930
14.9M
    if (auto&& SCN_TRY_TMP = (x); SCN_UNLIKELY(!SCN_TRY_TMP)) { \
3931
42.9k
        return ::scn::unexpected(SCN_TRY_TMP.error());          \
3932
42.9k
    }
3933
3934
#define SCN_TRY_ASSIGN(init, x)                        \
3935
28.4M
    auto&& SCN_TRY_TMP = (x);                          \
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E0_clISE_EEDaSP_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E_clISE_EEDaSP_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKcSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKcSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKcSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E0_clISB_EEDaSM_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKcSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E_clISB_EEDaSM_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E0_clISE_EEDaSP_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E_clISE_EEDaSP_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKwSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKwSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKwSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E0_clISB_EEDaSM_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKwSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E_clISB_EEDaSM_
3936
28.4M
    if (SCN_UNLIKELY(!SCN_TRY_TMP)) {                  \
3937
177k
        return ::scn::unexpected(SCN_TRY_TMP.error()); \
3938
177k
    }                                                  \
3939
28.4M
    init = *SCN_FWD(SCN_TRY_TMP);
3940
24.3M
#define SCN_TRY(name, x) SCN_TRY_ASSIGN(auto name, x)
3941
3942
/////////////////////////////////////////////////////////////////
3943
// string_view utilities
3944
/////////////////////////////////////////////////////////////////
3945
3946
namespace detail {
3947
3948
template <typename T>
3949
struct is_string_view : std::false_type {};
3950
template <typename CharT, typename Traits>
3951
struct is_string_view<std::basic_string_view<CharT, Traits>> : std::true_type {
3952
};
3953
3954
// workarounds for MSVC string_view debug iterators
3955
template <typename CharT>
3956
constexpr std::basic_string_view<CharT> make_string_view_from_iterators(
3957
    typename std::basic_string_view<CharT>::iterator first,
3958
    typename std::basic_string_view<CharT>::iterator last)
3959
197M
{
3960
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3961
                                          decltype(first), decltype(last)> &&
3962
                  !SCN_MSVC_DEBUG_ITERATORS) {
3963
        return {first, last};
3964
    }
3965
197M
    else {
3966
197M
        return {to_address(first), static_cast<size_t>(std::distance(
3967
197M
                                       to_address(first), to_address(last)))};
3968
197M
    }
3969
197M
}
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::make_string_view_from_iterators<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator, std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator)
Line
Count
Source
3959
10.1M
{
3960
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3961
                                          decltype(first), decltype(last)> &&
3962
                  !SCN_MSVC_DEBUG_ITERATORS) {
3963
        return {first, last};
3964
    }
3965
10.1M
    else {
3966
10.1M
        return {to_address(first), static_cast<size_t>(std::distance(
3967
10.1M
                                       to_address(first), to_address(last)))};
3968
10.1M
    }
3969
10.1M
}
std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::make_string_view_from_iterators<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator)
Line
Count
Source
3959
187M
{
3960
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3961
                                          decltype(first), decltype(last)> &&
3962
                  !SCN_MSVC_DEBUG_ITERATORS) {
3963
        return {first, last};
3964
    }
3965
187M
    else {
3966
187M
        return {to_address(first), static_cast<size_t>(std::distance(
3967
187M
                                       to_address(first), to_address(last)))};
3968
187M
    }
3969
187M
}
3970
3971
template <typename CharT>
3972
constexpr std::basic_string_view<CharT> make_string_view_from_pointers(
3973
    const CharT* first,
3974
    const CharT* last)
3975
3.39M
{
3976
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3977
                                          const CharT*, const CharT*>) {
3978
        return {first, last};
3979
    }
3980
3.39M
    else {
3981
3.39M
        return {first, static_cast<size_t>(std::distance(first, last))};
3982
3.39M
    }
3983
3.39M
}
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::make_string_view_from_pointers<char>(char const*, char const*)
Line
Count
Source
3975
326k
{
3976
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3977
                                          const CharT*, const CharT*>) {
3978
        return {first, last};
3979
    }
3980
326k
    else {
3981
326k
        return {first, static_cast<size_t>(std::distance(first, last))};
3982
326k
    }
3983
326k
}
std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::make_string_view_from_pointers<wchar_t>(wchar_t const*, wchar_t const*)
Line
Count
Source
3975
3.06M
{
3976
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
3977
                                          const CharT*, const CharT*>) {
3978
        return {first, last};
3979
    }
3980
3.06M
    else {
3981
3.06M
        return {first, static_cast<size_t>(std::distance(first, last))};
3982
3.06M
    }
3983
3.06M
}
3984
3985
template <typename CharT>
3986
constexpr auto make_string_view_iterator(
3987
    std::basic_string_view<CharT> sv,
3988
    typename std::basic_string_view<CharT>::iterator it) ->
3989
    typename std::basic_string_view<CharT>::iterator
3990
4.83M
{
3991
    if constexpr (std::is_constructible_v<
3992
                      typename std::basic_string_view<CharT>::iterator,
3993
                      decltype(it)> &&
3994
4.83M
                  !SCN_MSVC_DEBUG_ITERATORS) {
3995
4.83M
        SCN_UNUSED(sv);
3996
4.83M
        return it;
3997
    }
3998
    else {
3999
        return sv.begin() + std::distance(sv.data(), detail::to_address(it));
4000
    }
4001
4.83M
}
std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator scn::v4::detail::make_string_view_iterator<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator)
Line
Count
Source
3990
4.83M
{
3991
    if constexpr (std::is_constructible_v<
3992
                      typename std::basic_string_view<CharT>::iterator,
3993
                      decltype(it)> &&
3994
4.83M
                  !SCN_MSVC_DEBUG_ITERATORS) {
3995
4.83M
        SCN_UNUSED(sv);
3996
4.83M
        return it;
3997
    }
3998
    else {
3999
        return sv.begin() + std::distance(sv.data(), detail::to_address(it));
4000
    }
4001
4.83M
}
Unexecuted instantiation: std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator scn::v4::detail::make_string_view_iterator<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator)
4002
4003
template <typename CharT>
4004
constexpr auto make_string_view_iterator_from_pointer(
4005
    std::basic_string_view<CharT> sv,
4006
    const CharT* ptr) -> typename std::basic_string_view<CharT>::iterator
4007
{
4008
    if constexpr (std::is_constructible_v<
4009
                      typename std::basic_string_view<CharT>::iterator,
4010
                      const CharT*> &&
4011
                  !SCN_MSVC_DEBUG_ITERATORS) {
4012
        SCN_UNUSED(sv);
4013
        return ptr;
4014
    }
4015
    else {
4016
        return sv.begin() + std::distance(sv.data(), ptr);
4017
    }
4018
}
4019
4020
/////////////////////////////////////////////////////////////////
4021
// Lightweight Unicode facilities
4022
/////////////////////////////////////////////////////////////////
4023
4024
constexpr inline bool is_ascii_code_point(char32_t cp)
4025
0
{
4026
0
    return cp <= 0x7f;
4027
0
}
4028
4029
template <typename U8>
4030
constexpr std::size_t utf8_code_point_length_by_starting_code_unit(U8 ch)
4031
11.9M
{
4032
11.9M
    static_assert(sizeof(U8) == 1);
4033
4034
11.9M
    SCN_GCC_COMPAT_PUSH
4035
11.9M
    SCN_GCC_COMPAT_IGNORE("-Wsign-conversion")
4036
11.9M
    constexpr char lengths[] =
4037
11.9M
        "\1\1\1\1\1\1\1\1"  // highest bit is 0 -> single-byte
4038
11.9M
        "\1\1\1\1\1\1\1\1"
4039
11.9M
        "\0\0\0\0\0\0\0\0"  // highest bits 10 -> error, non-initial
4040
                            // byte
4041
11.9M
        "\2\2\2\2"          // highest bits 110 -> 2-byte cp
4042
11.9M
        "\3\3"              // highest bits 1110 -> 3-byte cp
4043
11.9M
        "\4";               // highest bits 11110 -> 4-byte cp
4044
11.9M
    return lengths[static_cast<unsigned char>(ch) >> 3];
4045
11.9M
    SCN_GCC_COMPAT_POP
4046
11.9M
}
4047
4048
template <typename U16>
4049
constexpr std::size_t utf16_code_point_length_by_starting_code_unit(U16 ch)
4050
{
4051
    static_assert(sizeof(U16) == 2);
4052
4053
    const auto lead = static_cast<uint16_t>(0xffff & ch);
4054
    if (lead >= 0xd800 && lead <= 0xdbff) {
4055
        // high surrogate
4056
        return 2;
4057
    }
4058
    if (lead >= 0xdc00 && lead <= 0xdfff) {
4059
        // unpaired low surrogate
4060
        return 0;
4061
    }
4062
    return 1;
4063
}
4064
4065
template <typename U>
4066
constexpr std::size_t code_point_length_by_starting_code_unit(U ch)
4067
419M
{
4068
419M
    if constexpr (sizeof(U) == 1) {
4069
11.9M
        return utf8_code_point_length_by_starting_code_unit(ch);
4070
    }
4071
    else if constexpr (sizeof(U) == 2) {
4072
        return utf16_code_point_length_by_starting_code_unit(ch);
4073
    }
4074
407M
    else {
4075
        // utf-32
4076
407M
        static_assert(sizeof(U) == 4);
4077
407M
        SCN_UNUSED(ch);
4078
407M
        return 1;
4079
407M
    }
4080
419M
}
unsigned long scn::v4::detail::code_point_length_by_starting_code_unit<char>(char)
Line
Count
Source
4067
11.9M
{
4068
11.9M
    if constexpr (sizeof(U) == 1) {
4069
11.9M
        return utf8_code_point_length_by_starting_code_unit(ch);
4070
    }
4071
    else if constexpr (sizeof(U) == 2) {
4072
        return utf16_code_point_length_by_starting_code_unit(ch);
4073
    }
4074
    else {
4075
        // utf-32
4076
        static_assert(sizeof(U) == 4);
4077
        SCN_UNUSED(ch);
4078
        return 1;
4079
    }
4080
11.9M
}
unsigned long scn::v4::detail::code_point_length_by_starting_code_unit<wchar_t>(wchar_t)
Line
Count
Source
4067
407M
{
4068
    if constexpr (sizeof(U) == 1) {
4069
        return utf8_code_point_length_by_starting_code_unit(ch);
4070
    }
4071
    else if constexpr (sizeof(U) == 2) {
4072
        return utf16_code_point_length_by_starting_code_unit(ch);
4073
    }
4074
407M
    else {
4075
        // utf-32
4076
407M
        static_assert(sizeof(U) == 4);
4077
407M
        SCN_UNUSED(ch);
4078
407M
        return 1;
4079
407M
    }
4080
407M
}
4081
4082
inline constexpr char32_t invalid_code_point = 0x110000;
4083
4084
inline constexpr char32_t decode_utf8_code_point_exhaustive(
4085
    std::string_view input)
4086
11.4M
{
4087
11.4M
    SCN_EXPECT(!input.empty() && input.size() <= 4);
4088
4089
11.4M
    const auto is_trailing_code_unit = [](char ch) {
4090
1.60M
        return static_cast<unsigned char>(ch) >> 6 == 0x2;
4091
1.60M
    };
4092
4093
11.4M
    if (input.size() == 1) {
4094
10.5M
        if (static_cast<unsigned char>(input[0]) >= 0x80) {
4095
579
            SCN_UNLIKELY_ATTR
4096
579
            return invalid_code_point;
4097
579
        }
4098
10.5M
        return static_cast<char32_t>(input[0]);
4099
10.5M
    }
4100
4101
951k
    if (input.size() == 2) {
4102
253k
        if ((static_cast<unsigned char>(input[0]) & 0xe0) != 0xc0) {
4103
480
            SCN_UNLIKELY_ATTR
4104
480
            return invalid_code_point;
4105
480
        }
4106
252k
        if (!is_trailing_code_unit(input[1])) {
4107
44.5k
            SCN_UNLIKELY_ATTR
4108
44.5k
            return invalid_code_point;
4109
44.5k
        }
4110
4111
208k
        char32_t cp{};
4112
208k
        cp |= (static_cast<char32_t>(input[0]) & 0x1f) << 6;
4113
208k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 0;
4114
208k
        return cp;
4115
252k
    }
4116
4117
698k
    if (input.size() == 3) {
4118
659k
        if ((static_cast<unsigned char>(input[0]) & 0xf0) != 0xe0) {
4119
106
            SCN_UNLIKELY_ATTR
4120
106
            return invalid_code_point;
4121
106
        }
4122
659k
        if (!is_trailing_code_unit(input[1]) ||
4123
659k
            !is_trailing_code_unit(input[2])) {
4124
11.9k
            SCN_UNLIKELY_ATTR
4125
11.9k
            return invalid_code_point;
4126
11.9k
        }
4127
4128
647k
        char32_t cp{};
4129
647k
        cp |= (static_cast<char32_t>(input[0]) & 0x0f) << 12;
4130
647k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 6;
4131
647k
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 0;
4132
647k
        return cp;
4133
659k
    }
4134
4135
38.7k
    if (input.size() == 4) {
4136
38.7k
        if ((static_cast<unsigned char>(input[0]) & 0xf8) != 0xf0) {
4137
0
            SCN_UNLIKELY_ATTR
4138
0
            return invalid_code_point;
4139
0
        }
4140
38.7k
        if (static_cast<unsigned char>(input[0]) > 0xf4) {
4141
23.4k
            SCN_UNLIKELY_ATTR
4142
23.4k
            return invalid_code_point;
4143
23.4k
        }
4144
15.2k
        if (!is_trailing_code_unit(input[1]) ||
4145
15.2k
            !is_trailing_code_unit(input[2]) ||
4146
15.2k
            !is_trailing_code_unit(input[3])) {
4147
4.03k
            SCN_UNLIKELY_ATTR
4148
4.03k
            return invalid_code_point;
4149
4.03k
        }
4150
4151
11.2k
        char32_t cp{};
4152
11.2k
        cp |= (static_cast<char32_t>(input[0]) & 0x07) << 18;
4153
11.2k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 12;
4154
11.2k
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 6;
4155
11.2k
        cp |= (static_cast<char32_t>(input[3]) & 0x3f) << 0;
4156
11.2k
        return cp;
4157
15.2k
    }
4158
4159
0
#if !SCN_GCC || SCN_GCC >= SCN_COMPILER(8, 0, 0)
4160
    // gcc 7 thinks we'll get here, even when we won't
4161
0
    SCN_EXPECT(false);
4162
0
#endif
4163
0
    SCN_UNREACHABLE;
4164
0
}
4165
4166
inline constexpr char32_t decode_utf8_code_point_exhaustive_valid(
4167
    std::string_view input)
4168
0
{
4169
0
    SCN_EXPECT(!input.empty() && input.size() <= 4);
4170
4171
0
    const auto is_trailing_code_unit = [](char ch) {
4172
0
        return static_cast<unsigned char>(ch) >> 6 == 0x2;
4173
0
    };
4174
4175
0
    if (input.size() == 1) {
4176
0
        SCN_EXPECT(static_cast<unsigned char>(input[0]) < 0x80);
4177
0
        return static_cast<char32_t>(input[0]);
4178
0
    }
4179
4180
0
    if (input.size() == 2) {
4181
0
        SCN_EXPECT((static_cast<unsigned char>(input[0]) & 0xe0) == 0xc0);
4182
0
        SCN_EXPECT(is_trailing_code_unit(input[1]));
4183
4184
0
        char32_t cp{};
4185
0
        cp |= (static_cast<char32_t>(input[0]) & 0x1f) << 6;
4186
0
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 0;
4187
0
        return cp;
4188
0
    }
4189
4190
0
    if (input.size() == 3) {
4191
0
        SCN_EXPECT((static_cast<unsigned char>(input[0]) & 0xf0) == 0xe0);
4192
0
        SCN_EXPECT(is_trailing_code_unit(input[1]));
4193
0
        SCN_EXPECT(is_trailing_code_unit(input[2]));
4194
4195
0
        char32_t cp{};
4196
0
        cp |= (static_cast<char32_t>(input[0]) & 0x0f) << 12;
4197
0
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 6;
4198
0
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 0;
4199
0
        return cp;
4200
0
    }
4201
4202
0
    if (input.size() == 4) {
4203
0
        SCN_EXPECT((static_cast<unsigned char>(input[0]) & 0xf8) == 0xf0);
4204
0
        SCN_EXPECT(static_cast<unsigned char>(input[0]) <= 0xf4);
4205
0
        SCN_EXPECT(is_trailing_code_unit(input[1]));
4206
0
        SCN_EXPECT(is_trailing_code_unit(input[2]));
4207
0
        SCN_EXPECT(is_trailing_code_unit(input[3]));
4208
4209
0
        char32_t cp{};
4210
0
        cp |= (static_cast<char32_t>(input[0]) & 0x07) << 18;
4211
0
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 12;
4212
0
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 6;
4213
0
        cp |= (static_cast<char32_t>(input[3]) & 0x3f) << 0;
4214
0
        return cp;
4215
0
    }
4216
4217
0
#if !SCN_GCC || SCN_GCC >= SCN_COMPILER(8, 0, 0)
4218
    // gcc 7 thinks we'll get here, even when we won't
4219
0
    SCN_EXPECT(false);
4220
0
#endif
4221
0
    SCN_UNREACHABLE;
4222
0
}
4223
4224
template <typename CharT>
4225
inline constexpr char32_t decode_utf16_code_point_exhaustive(
4226
    std::basic_string_view<CharT> input)
4227
{
4228
    static_assert(sizeof(CharT) == 2);
4229
4230
    SCN_EXPECT(!input.empty() && input.size() <= 2);
4231
4232
    if (input.size() == 1) {
4233
        return static_cast<char32_t>(input[0]);
4234
    }
4235
4236
    const auto lead = static_cast<uint32_t>(input[0]);
4237
    const auto trail = static_cast<uint32_t>(input[1]);
4238
    if (lead < 0xd800 || lead > 0xdbff || trail < 0xdc00 || trail > 0xdfff) {
4239
        SCN_UNLIKELY_ATTR
4240
        return invalid_code_point;
4241
    }
4242
4243
    const auto cp = ((lead - 0xd800) << 10) | (trail - 0xdc00);
4244
    return static_cast<char32_t>(cp + 0x10000);
4245
}
4246
4247
template <typename CharT>
4248
inline constexpr char32_t decode_utf16_code_point_exhaustive_valid(
4249
    std::basic_string_view<CharT> input)
4250
{
4251
    static_assert(sizeof(CharT) == 2);
4252
4253
    SCN_EXPECT(!input.empty() && input.size() <= 2);
4254
4255
    if (input.size() == 1) {
4256
        return static_cast<char32_t>(input[0]);
4257
    }
4258
4259
    const auto lead = static_cast<uint32_t>(input[0]);
4260
    const auto trail = static_cast<uint32_t>(input[1]);
4261
    SCN_EXPECT(lead >= 0xd800);
4262
    SCN_EXPECT(lead <= 0xdbff);
4263
    SCN_EXPECT(trail >= 0xdc00);
4264
    SCN_EXPECT(trail <= 0xdfff);
4265
4266
    const auto cp = ((lead - 0xd800) << 10) | (trail - 0xdc00);
4267
    return static_cast<char32_t>(cp + 0x10000);
4268
}
4269
4270
template <typename CharT>
4271
inline constexpr char32_t decode_code_point_exhaustive(
4272
    std::basic_string_view<CharT> input)
4273
418M
{
4274
418M
    if constexpr (sizeof(CharT) == 1) {
4275
11.4M
        return decode_utf8_code_point_exhaustive(input);
4276
    }
4277
    else if constexpr (sizeof(CharT) == 2) {
4278
        return decode_utf16_code_point_exhaustive(input);
4279
    }
4280
407M
    else {
4281
407M
        SCN_EXPECT(input.size() == 1);
4282
407M
        auto cp = static_cast<char32_t>(input.front());
4283
407M
        if (SCN_UNLIKELY(cp >= invalid_code_point)) {
4284
2.49M
            return invalid_code_point;
4285
2.49M
        }
4286
404M
        return cp;
4287
407M
    }
4288
418M
}
char32_t scn::v4::detail::decode_code_point_exhaustive<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
4273
11.4M
{
4274
11.4M
    if constexpr (sizeof(CharT) == 1) {
4275
11.4M
        return decode_utf8_code_point_exhaustive(input);
4276
    }
4277
    else if constexpr (sizeof(CharT) == 2) {
4278
        return decode_utf16_code_point_exhaustive(input);
4279
    }
4280
    else {
4281
        SCN_EXPECT(input.size() == 1);
4282
        auto cp = static_cast<char32_t>(input.front());
4283
        if (SCN_UNLIKELY(cp >= invalid_code_point)) {
4284
            return invalid_code_point;
4285
        }
4286
        return cp;
4287
    }
4288
11.4M
}
char32_t scn::v4::detail::decode_code_point_exhaustive<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
4273
407M
{
4274
    if constexpr (sizeof(CharT) == 1) {
4275
        return decode_utf8_code_point_exhaustive(input);
4276
    }
4277
    else if constexpr (sizeof(CharT) == 2) {
4278
        return decode_utf16_code_point_exhaustive(input);
4279
    }
4280
407M
    else {
4281
407M
        SCN_EXPECT(input.size() == 1);
4282
407M
        auto cp = static_cast<char32_t>(input.front());
4283
407M
        if (SCN_UNLIKELY(cp >= invalid_code_point)) {
4284
2.49M
            return invalid_code_point;
4285
2.49M
        }
4286
404M
        return cp;
4287
407M
    }
4288
407M
}
4289
4290
template <typename CharT>
4291
inline constexpr char32_t decode_code_point_exhaustive_valid(
4292
    std::basic_string_view<CharT> input)
4293
0
{
4294
0
    if constexpr (sizeof(CharT) == 1) {
4295
0
        return decode_utf8_code_point_exhaustive_valid(input);
4296
    }
4297
    else if constexpr (sizeof(CharT) == 2) {
4298
        return decode_utf16_code_point_exhaustive_valid(input);
4299
    }
4300
0
    else {
4301
0
        SCN_EXPECT(input.size() == 1);
4302
0
        return static_cast<char32_t>(input.front());
4303
0
    }
4304
0
}
Unexecuted instantiation: char32_t scn::v4::detail::decode_code_point_exhaustive_valid<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: char32_t scn::v4::detail::decode_code_point_exhaustive_valid<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4305
4306
inline constexpr bool is_cp_space(char32_t cp) noexcept
4307
224M
{
4308
    // Pattern_White_Space property
4309
224M
    return (cp >= 0x09 && cp <= 0x0d) ||
4310
224M
           cp == 0x20 ||    // ASCII space characters
4311
224M
           cp == 0x85 ||    // NEXT LINE (NEL)
4312
224M
           cp == 0x200e ||  // LEFT-TO-RIGHT MARK
4313
224M
           cp == 0x200f ||  // RIGHT-TO-LEFT MARK
4314
224M
           cp == 0x2028 ||  // LINE SEPARATOR
4315
224M
           cp == 0x2029;    // PARAGRAPH SEPARATOR
4316
224M
}
4317
4318
}  // namespace detail
4319
4320
/////////////////////////////////////////////////////////////////
4321
// scan_buffer
4322
/////////////////////////////////////////////////////////////////
4323
4324
namespace detail {
4325
template <typename CharT>
4326
class basic_scan_buffer {
4327
public:
4328
    class forward_iterator;
4329
    class common_forward_iterator;
4330
4331
    using char_type = CharT;
4332
    using range_type =
4333
        ranges::subrange<forward_iterator, ranges::default_sentinel_t>;
4334
    using common_range_type = ranges::subrange<common_forward_iterator>;
4335
4336
    basic_scan_buffer(const basic_scan_buffer&) = delete;
4337
    basic_scan_buffer& operator=(const basic_scan_buffer&) = delete;
4338
    basic_scan_buffer(basic_scan_buffer&&) = delete;
4339
    basic_scan_buffer& operator=(basic_scan_buffer&&) = delete;
4340
3.47M
    virtual ~basic_scan_buffer() = default;
scn::v4::detail::basic_scan_buffer<char>::~basic_scan_buffer()
Line
Count
Source
4340
357k
    virtual ~basic_scan_buffer() = default;
scn::v4::detail::basic_scan_buffer<wchar_t>::~basic_scan_buffer()
Line
Count
Source
4340
3.12M
    virtual ~basic_scan_buffer() = default;
4341
4342
    virtual bool fill() = 0;
4343
4344
    virtual void sync(std::ptrdiff_t position)
4345
3.47M
    {
4346
3.47M
        SCN_UNUSED(position);
4347
3.47M
    }
scn::v4::detail::basic_scan_buffer<char>::sync(long)
Line
Count
Source
4345
357k
    {
4346
357k
        SCN_UNUSED(position);
4347
357k
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::sync(long)
Line
Count
Source
4345
3.12M
    {
4346
3.12M
        SCN_UNUSED(position);
4347
3.12M
    }
4348
4349
    void sync_all()
4350
93.0k
    {
4351
93.0k
        sync(0);
4352
93.0k
    }
scn::v4::detail::basic_scan_buffer<char>::sync_all()
Line
Count
Source
4350
31.0k
    {
4351
31.0k
        sync(0);
4352
31.0k
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::sync_all()
Line
Count
Source
4350
62.0k
    {
4351
62.0k
        sync(0);
4352
62.0k
    }
4353
4354
    SCN_NODISCARD std::ptrdiff_t chars_available() const
4355
580M
    {
4356
580M
        return m_putback_buffer.size() + m_current_view.size();
4357
580M
    }
scn::v4::detail::basic_scan_buffer<char>::chars_available() const
Line
Count
Source
4355
31.5M
    {
4356
31.5M
        return m_putback_buffer.size() + m_current_view.size();
4357
31.5M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::chars_available() const
Line
Count
Source
4355
548M
    {
4356
548M
        return m_putback_buffer.size() + m_current_view.size();
4357
548M
    }
4358
4359
    SCN_NODISCARD std::basic_string_view<CharT> current_view() const
4360
0
    {
4361
0
        return m_current_view;
4362
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::current_view() const
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::current_view() const
4363
4364
    SCN_NODISCARD std::basic_string<CharT>& putback_buffer()
4365
0
    {
4366
0
        return m_putback_buffer;
4367
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::putback_buffer()
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::putback_buffer()
4368
    SCN_NODISCARD const std::basic_string<CharT>& putback_buffer() const
4369
    {
4370
        return m_putback_buffer;
4371
    }
4372
4373
    SCN_NODISCARD std::basic_string_view<CharT> get_segment_starting_at(
4374
        std::ptrdiff_t pos) const
4375
10.9M
    {
4376
10.9M
        if (SCN_UNLIKELY(
4377
10.9M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4378
7.10M
            return std::basic_string_view<CharT>(m_putback_buffer).substr(pos);
4379
7.10M
        }
4380
3.82M
        const auto start = pos - m_putback_buffer.size();
4381
3.82M
        SCN_EXPECT(start <= m_current_view.size());
4382
3.82M
        return m_current_view.substr(start);
4383
3.82M
    }
scn::v4::detail::basic_scan_buffer<char>::get_segment_starting_at(long) const
Line
Count
Source
4375
1.67M
    {
4376
1.67M
        if (SCN_UNLIKELY(
4377
1.67M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4378
963k
            return std::basic_string_view<CharT>(m_putback_buffer).substr(pos);
4379
963k
        }
4380
715k
        const auto start = pos - m_putback_buffer.size();
4381
715k
        SCN_EXPECT(start <= m_current_view.size());
4382
715k
        return m_current_view.substr(start);
4383
715k
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::get_segment_starting_at(long) const
Line
Count
Source
4375
9.24M
    {
4376
9.24M
        if (SCN_UNLIKELY(
4377
9.24M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4378
6.13M
            return std::basic_string_view<CharT>(m_putback_buffer).substr(pos);
4379
6.13M
        }
4380
3.11M
        const auto start = pos - m_putback_buffer.size();
4381
3.11M
        SCN_EXPECT(start <= m_current_view.size());
4382
3.11M
        return m_current_view.substr(start);
4383
3.11M
    }
4384
4385
    SCN_NODISCARD CharT get_character_at(std::ptrdiff_t pos) const
4386
155M
    {
4387
155M
        if (SCN_UNLIKELY(
4388
155M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4389
82.0M
            return m_putback_buffer[pos];
4390
82.0M
        }
4391
73.7M
        const auto start = pos - m_putback_buffer.size();
4392
73.7M
        SCN_EXPECT(start < m_current_view.size());
4393
73.7M
        return m_current_view[start];
4394
73.7M
    }
scn::v4::detail::basic_scan_buffer<char>::get_character_at(long) const
Line
Count
Source
4386
7.66M
    {
4387
7.66M
        if (SCN_UNLIKELY(
4388
7.66M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4389
4.16M
            return m_putback_buffer[pos];
4390
4.16M
        }
4391
3.49M
        const auto start = pos - m_putback_buffer.size();
4392
3.49M
        SCN_EXPECT(start < m_current_view.size());
4393
3.49M
        return m_current_view[start];
4394
3.49M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::get_character_at(long) const
Line
Count
Source
4386
148M
    {
4387
148M
        if (SCN_UNLIKELY(
4388
148M
                pos < static_cast<std::ptrdiff_t>(m_putback_buffer.size()))) {
4389
77.8M
            return m_putback_buffer[pos];
4390
77.8M
        }
4391
70.2M
        const auto start = pos - m_putback_buffer.size();
4392
70.2M
        SCN_EXPECT(start < m_current_view.size());
4393
70.2M
        return m_current_view[start];
4394
70.2M
    }
4395
4396
    SCN_NODISCARD bool is_contiguous() const
4397
10.4M
    {
4398
10.4M
        return m_is_contiguous;
4399
10.4M
    }
scn::v4::detail::basic_scan_buffer<char>::is_contiguous() const
Line
Count
Source
4397
1.07M
    {
4398
1.07M
        return m_is_contiguous;
4399
1.07M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::is_contiguous() const
Line
Count
Source
4397
9.36M
    {
4398
9.36M
        return m_is_contiguous;
4399
9.36M
    }
4400
4401
    SCN_NODISCARD auto get_contiguous() const
4402
0
    {
4403
0
        SCN_EXPECT(is_contiguous());
4404
0
        return ranges::subrange<const CharT*>{
4405
0
            current_view().data(),
4406
0
            current_view().data() + current_view().size()};
4407
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::get_contiguous() const
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::get_contiguous() const
4408
4409
    SCN_NODISCARD range_type get();
4410
    SCN_NODISCARD common_range_type get_common_range();
4411
4412
protected:
4413
    friend class forward_iterator;
4414
    friend class common_forward_iterator;
4415
4416
    struct contiguous_tag {};
4417
    struct non_contiguous_tag {};
4418
4419
    basic_scan_buffer(contiguous_tag, std::basic_string_view<char_type> sv)
4420
0
        : m_current_view(sv), m_is_contiguous(true)
4421
0
    {
4422
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::basic_scan_buffer(scn::v4::detail::basic_scan_buffer<char>::contiguous_tag, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::basic_scan_buffer(scn::v4::detail::basic_scan_buffer<wchar_t>::contiguous_tag, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4423
4424
    basic_scan_buffer(non_contiguous_tag,
4425
                      std::basic_string_view<char_type> sv = {})
4426
3.47M
        : m_current_view(sv), m_is_contiguous(false)
4427
3.47M
    {
4428
3.47M
    }
scn::v4::detail::basic_scan_buffer<char>::basic_scan_buffer(scn::v4::detail::basic_scan_buffer<char>::non_contiguous_tag, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
4426
357k
        : m_current_view(sv), m_is_contiguous(false)
4427
357k
    {
4428
357k
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::basic_scan_buffer(scn::v4::detail::basic_scan_buffer<wchar_t>::non_contiguous_tag, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
4426
3.12M
        : m_current_view(sv), m_is_contiguous(false)
4427
3.12M
    {
4428
3.12M
    }
4429
4430
    basic_scan_buffer(bool is_contiguous, std::basic_string_view<char_type> sv)
4431
0
        : m_current_view(sv), m_is_contiguous(is_contiguous)
4432
0
    {
4433
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::basic_scan_buffer(bool, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::basic_scan_buffer(bool, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4434
4435
    std::basic_string_view<char_type> m_current_view{};
4436
    std::basic_string<char_type> m_putback_buffer{};
4437
    bool m_is_contiguous{false};
4438
};
4439
4440
template <typename CharT>
4441
class basic_scan_buffer<CharT>::forward_iterator {
4442
public:
4443
    using value_type = CharT;
4444
    using reference = CharT;
4445
    using pointer = CharT*;
4446
    using difference_type = std::ptrdiff_t;
4447
    using iterator_category = std::forward_iterator_tag;
4448
4449
0
    forward_iterator() = default;
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::forward_iterator()
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::forward_iterator()
4450
4451
    forward_iterator(basic_scan_buffer<CharT>* parent, std::ptrdiff_t pos)
4452
3.47M
        : m_begin(parent), m_end(nullptr), m_position(pos)
4453
3.47M
    {
4454
3.47M
        SCN_EXPECT(parent);
4455
3.47M
        SCN_EXPECT(!parent->is_contiguous());
4456
3.47M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::forward_iterator(scn::v4::detail::basic_scan_buffer<char>*, long)
Line
Count
Source
4452
357k
        : m_begin(parent), m_end(nullptr), m_position(pos)
4453
357k
    {
4454
357k
        SCN_EXPECT(parent);
4455
357k
        SCN_EXPECT(!parent->is_contiguous());
4456
357k
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::forward_iterator(scn::v4::detail::basic_scan_buffer<wchar_t>*, long)
Line
Count
Source
4452
3.12M
        : m_begin(parent), m_end(nullptr), m_position(pos)
4453
3.12M
    {
4454
3.12M
        SCN_EXPECT(parent);
4455
3.12M
        SCN_EXPECT(!parent->is_contiguous());
4456
3.12M
    }
4457
4458
    forward_iterator(std::basic_string_view<CharT> view, std::ptrdiff_t pos)
4459
0
        : m_begin(const_cast<CharT*>(view.data())),
4460
0
          m_end(const_cast<CharT*>(view.data() + view.size())),
4461
0
          m_position(pos)
4462
0
    {
4463
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::forward_iterator(std::__1::basic_string_view<char, std::__1::char_traits<char> >, long)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::forward_iterator(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, long)
4464
4465
    std::ptrdiff_t position() const
4466
12.9M
    {
4467
12.9M
        return m_position;
4468
12.9M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::position() const
Line
Count
Source
4466
1.88M
    {
4467
1.88M
        return m_position;
4468
1.88M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::position() const
Line
Count
Source
4466
11.1M
    {
4467
11.1M
        return m_position;
4468
11.1M
    }
4469
4470
    bool stores_parent() const
4471
1.41G
    {
4472
1.41G
        assert(m_begin);
4473
1.41G
        return m_end == nullptr;
4474
1.41G
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::stores_parent() const
Line
Count
Source
4471
77.4M
    {
4472
77.4M
        assert(m_begin);
4473
77.4M
        return m_end == nullptr;
4474
77.4M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::stores_parent() const
Line
Count
Source
4471
1.33G
    {
4472
1.33G
        assert(m_begin);
4473
1.33G
        return m_end == nullptr;
4474
1.33G
    }
4475
4476
    basic_scan_buffer<CharT>* parent()
4477
0
    {
4478
0
        SCN_EXPECT(stores_parent());
4479
0
        return static_cast<basic_scan_buffer<CharT>*>(m_begin);
4480
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::parent()
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::parent()
4481
    const basic_scan_buffer<CharT>* parent() const
4482
824M
    {
4483
824M
        SCN_EXPECT(stores_parent());
4484
824M
        return static_cast<const basic_scan_buffer<CharT>*>(m_begin);
4485
824M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::parent() const
Line
Count
Source
4482
45.1M
    {
4483
45.1M
        SCN_EXPECT(stores_parent());
4484
45.1M
        return static_cast<const basic_scan_buffer<CharT>*>(m_begin);
4485
45.1M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::parent() const
Line
Count
Source
4482
779M
    {
4483
779M
        SCN_EXPECT(stores_parent());
4484
779M
        return static_cast<const basic_scan_buffer<CharT>*>(m_begin);
4485
779M
    }
4486
4487
    std::basic_string_view<CharT> contiguous_segment() const
4488
10.9M
    {
4489
10.9M
        if (!stores_parent()) {
4490
0
            return make_string_view_from_pointers(
4491
0
                static_cast<const CharT*>(m_begin) + position(),
4492
0
                static_cast<const CharT*>(m_end));
4493
0
        }
4494
10.9M
        return parent()->get_segment_starting_at(position());
4495
10.9M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::contiguous_segment() const
Line
Count
Source
4488
1.67M
    {
4489
1.67M
        if (!stores_parent()) {
4490
0
            return make_string_view_from_pointers(
4491
0
                static_cast<const CharT*>(m_begin) + position(),
4492
0
                static_cast<const CharT*>(m_end));
4493
0
        }
4494
1.67M
        return parent()->get_segment_starting_at(position());
4495
1.67M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::contiguous_segment() const
Line
Count
Source
4488
9.24M
    {
4489
9.24M
        if (!stores_parent()) {
4490
0
            return make_string_view_from_pointers(
4491
0
                static_cast<const CharT*>(m_begin) + position(),
4492
0
                static_cast<const CharT*>(m_end));
4493
0
        }
4494
9.24M
        return parent()->get_segment_starting_at(position());
4495
9.24M
    }
4496
    auto to_contiguous_segment_iterator() const
4497
    {
4498
        return contiguous_segment().data();
4499
    }
4500
4501
    forward_iterator& operator++()
4502
108M
    {
4503
108M
        ++m_position;
4504
108M
        (void)read_at_position();
4505
108M
        return *this;
4506
108M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::operator++()
Line
Count
Source
4502
6.91M
    {
4503
6.91M
        ++m_position;
4504
6.91M
        (void)read_at_position();
4505
6.91M
        return *this;
4506
6.91M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::operator++()
Line
Count
Source
4502
101M
    {
4503
101M
        ++m_position;
4504
101M
        (void)read_at_position();
4505
101M
        return *this;
4506
101M
    }
4507
4508
    forward_iterator operator++(int)
4509
    {
4510
        auto copy = *this;
4511
        operator++();
4512
        return copy;
4513
    }
4514
4515
    CharT operator*() const
4516
155M
    {
4517
155M
        SCN_EXPECT(m_begin);
4518
4519
155M
        if (!stores_parent()) {
4520
0
            auto ptr = static_cast<const CharT*>(m_begin) + position();
4521
0
            SCN_EXPECT(ptr != m_end);
4522
0
            return *ptr;
4523
0
        }
4524
4525
155M
        auto res = read_at_position();
4526
155M
        SCN_EXPECT(res);
4527
155M
        return parent()->get_character_at(m_position);
4528
155M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::operator*() const
Line
Count
Source
4516
7.66M
    {
4517
7.66M
        SCN_EXPECT(m_begin);
4518
4519
7.66M
        if (!stores_parent()) {
4520
0
            auto ptr = static_cast<const CharT*>(m_begin) + position();
4521
0
            SCN_EXPECT(ptr != m_end);
4522
0
            return *ptr;
4523
0
        }
4524
4525
7.66M
        auto res = read_at_position();
4526
7.66M
        SCN_EXPECT(res);
4527
7.66M
        return parent()->get_character_at(m_position);
4528
7.66M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::operator*() const
Line
Count
Source
4516
148M
    {
4517
148M
        SCN_EXPECT(m_begin);
4518
4519
148M
        if (!stores_parent()) {
4520
0
            auto ptr = static_cast<const CharT*>(m_begin) + position();
4521
0
            SCN_EXPECT(ptr != m_end);
4522
0
            return *ptr;
4523
0
        }
4524
4525
148M
        auto res = read_at_position();
4526
148M
        SCN_EXPECT(res);
4527
148M
        return parent()->get_character_at(m_position);
4528
148M
    }
4529
4530
    forward_iterator& batch_advance(std::ptrdiff_t n)
4531
0
    {
4532
0
        SCN_EXPECT(n >= 0);
4533
0
        m_position += n;
4534
0
        return *this;
4535
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::batch_advance(long)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::batch_advance(long)
4536
4537
    forward_iterator& batch_advance_to(std::ptrdiff_t i)
4538
0
    {
4539
0
        SCN_EXPECT(i >= m_position);
4540
0
        m_position = i;
4541
0
        return *this;
4542
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::batch_advance_to(long)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::batch_advance_to(long)
4543
4544
    friend bool operator==(const forward_iterator& lhs,
4545
                           const forward_iterator& rhs)
4546
32.1M
    {
4547
32.1M
        return lhs.m_begin == rhs.m_begin && lhs.m_position == rhs.m_position;
4548
32.1M
    }
scn::v4::detail::operator==(scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
4546
2.93M
    {
4547
2.93M
        return lhs.m_begin == rhs.m_begin && lhs.m_position == rhs.m_position;
4548
2.93M
    }
scn::v4::detail::operator==(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
4546
29.2M
    {
4547
29.2M
        return lhs.m_begin == rhs.m_begin && lhs.m_position == rhs.m_position;
4548
29.2M
    }
4549
    friend bool operator!=(const forward_iterator& lhs,
4550
                           const forward_iterator& rhs)
4551
32.1M
    {
4552
32.1M
        return !(lhs == rhs);
4553
32.1M
    }
scn::v4::detail::operator!=(scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&)
Line
Count
Source
4551
2.93M
    {
4552
2.93M
        return !(lhs == rhs);
4553
2.93M
    }
scn::v4::detail::operator!=(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
Line
Count
Source
4551
29.2M
    {
4552
29.2M
        return !(lhs == rhs);
4553
29.2M
    }
4554
4555
    friend bool operator==(const forward_iterator& x,
4556
                           ranges::default_sentinel_t)
4557
82.3M
    {
4558
82.3M
        return x.is_at_end();
4559
82.3M
    }
scn::v4::detail::operator==(scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v4::ranges::default_sentinel_t)
Line
Count
Source
4557
4.08M
    {
4558
4.08M
        return x.is_at_end();
4559
4.08M
    }
scn::v4::detail::operator==(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v4::ranges::default_sentinel_t)
Line
Count
Source
4557
78.2M
    {
4558
78.2M
        return x.is_at_end();
4559
78.2M
    }
4560
    friend bool operator==(ranges::default_sentinel_t,
4561
                           const forward_iterator& x)
4562
    {
4563
        return x.is_at_end();
4564
    }
4565
4566
    friend bool operator!=(const forward_iterator& x,
4567
                           ranges::default_sentinel_t)
4568
78.8M
    {
4569
78.8M
        return !x.is_at_end();
4570
78.8M
    }
scn::v4::detail::operator!=(scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v4::ranges::default_sentinel_t)
Line
Count
Source
4568
4.26M
    {
4569
4.26M
        return !x.is_at_end();
4570
4.26M
    }
scn::v4::detail::operator!=(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v4::ranges::default_sentinel_t)
Line
Count
Source
4568
74.5M
    {
4569
74.5M
        return !x.is_at_end();
4570
74.5M
    }
4571
    friend bool operator!=(ranges::default_sentinel_t,
4572
                           const forward_iterator& x)
4573
    {
4574
        return !x.is_at_end();
4575
    }
4576
4577
private:
4578
    friend class basic_scan_buffer<CharT>;
4579
4580
    SCN_NODISCARD bool read_at_position() const
4581
425M
    {
4582
425M
        SCN_EXPECT(m_begin);
4583
4584
425M
        if (!stores_parent()) {
4585
0
            return true;
4586
0
        }
4587
4588
425M
        if (SCN_LIKELY(m_position < parent()->chars_available())) {
4589
347M
            return true;
4590
347M
        }
4591
4592
155M
        while (m_position >= parent()->chars_available()) {
4593
77.6M
            if (!const_cast<basic_scan_buffer<CharT>*>(parent())->fill()) {
4594
89.9k
                return false;
4595
89.9k
            }
4596
77.6M
        }
4597
77.5M
        return true;
4598
77.6M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::read_at_position() const
Line
Count
Source
4581
22.9M
    {
4582
22.9M
        SCN_EXPECT(m_begin);
4583
4584
22.9M
        if (!stores_parent()) {
4585
0
            return true;
4586
0
        }
4587
4588
22.9M
        if (SCN_LIKELY(m_position < parent()->chars_available())) {
4589
18.6M
            return true;
4590
18.6M
        }
4591
4592
8.56M
        while (m_position >= parent()->chars_available()) {
4593
4.30M
            if (!const_cast<basic_scan_buffer<CharT>*>(parent())->fill()) {
4594
38.1k
                return false;
4595
38.1k
            }
4596
4.30M
        }
4597
4.26M
        return true;
4598
4.30M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::read_at_position() const
Line
Count
Source
4581
402M
    {
4582
402M
        SCN_EXPECT(m_begin);
4583
4584
402M
        if (!stores_parent()) {
4585
0
            return true;
4586
0
        }
4587
4588
402M
        if (SCN_LIKELY(m_position < parent()->chars_available())) {
4589
328M
            return true;
4590
328M
        }
4591
4592
146M
        while (m_position >= parent()->chars_available()) {
4593
73.3M
            if (!const_cast<basic_scan_buffer<CharT>*>(parent())->fill()) {
4594
51.8k
                return false;
4595
51.8k
            }
4596
73.3M
        }
4597
73.2M
        return true;
4598
73.3M
    }
4599
4600
    SCN_NODISCARD bool is_at_end() const
4601
161M
    {
4602
161M
        if (m_end) {
4603
0
            return (static_cast<const CharT*>(m_begin) + position()) == m_end;
4604
0
        }
4605
161M
        if (!m_begin) {
4606
0
            return true;
4607
0
        }
4608
161M
        return !read_at_position();
4609
161M
    }
scn::v4::detail::basic_scan_buffer<char>::forward_iterator::is_at_end() const
Line
Count
Source
4601
8.34M
    {
4602
8.34M
        if (m_end) {
4603
0
            return (static_cast<const CharT*>(m_begin) + position()) == m_end;
4604
0
        }
4605
8.34M
        if (!m_begin) {
4606
0
            return true;
4607
0
        }
4608
8.34M
        return !read_at_position();
4609
8.34M
    }
scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::is_at_end() const
Line
Count
Source
4601
152M
    {
4602
152M
        if (m_end) {
4603
0
            return (static_cast<const CharT*>(m_begin) + position()) == m_end;
4604
0
        }
4605
152M
        if (!m_begin) {
4606
0
            return true;
4607
0
        }
4608
152M
        return !read_at_position();
4609
152M
    }
4610
4611
    // If m_end is null, m_begin points to the parent scan_buffer
4612
    // Otherwise, [m_begin, m_end) is the range of this iterator (and of
4613
    // the entire range)
4614
    mutable void* m_begin{nullptr};
4615
    mutable void* m_end{nullptr};
4616
    std::ptrdiff_t m_position{0};
4617
};
4618
4619
template <typename CharT>
4620
class basic_scan_buffer<CharT>::common_forward_iterator
4621
    : public basic_scan_buffer<CharT>::forward_iterator {
4622
    using base = basic_scan_buffer<CharT>::forward_iterator;
4623
4624
public:
4625
    common_forward_iterator() = default;
4626
4627
    explicit common_forward_iterator(forward_iterator it)
4628
0
        : base(it), m_is_end(it.is_at_end())
4629
0
    {
4630
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::common_forward_iterator::common_forward_iterator(scn::v4::detail::basic_scan_buffer<char>::forward_iterator)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::common_forward_iterator::common_forward_iterator(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator)
4631
    explicit common_forward_iterator(ranges::default_sentinel_t)
4632
0
        : base(), m_is_end(true)
4633
0
    {
4634
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::common_forward_iterator::common_forward_iterator(scn::v4::ranges::default_sentinel_t)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::common_forward_iterator::common_forward_iterator(scn::v4::ranges::default_sentinel_t)
4635
4636
    common_forward_iterator& operator++()
4637
    {
4638
        base::operator++();
4639
        m_is_end = base::is_at_end();
4640
        return *this;
4641
    }
4642
4643
    common_forward_iterator operator++(int)
4644
    {
4645
        auto copy = *this;
4646
        operator++();
4647
        return copy;
4648
    }
4649
4650
    common_forward_iterator& batch_advance(std::ptrdiff_t n)
4651
    {
4652
        base::batch_advance(n);
4653
        m_is_end = base::is_at_end();
4654
        return *this;
4655
    }
4656
4657
    common_forward_iterator& batch_advance_to(std::ptrdiff_t i)
4658
    {
4659
        base::batch_advance_to(i);
4660
        m_is_end = base::is_at_end();
4661
        return *this;
4662
    }
4663
4664
    friend bool operator==(const common_forward_iterator& lhs,
4665
                           const common_forward_iterator& rhs)
4666
    {
4667
        if (lhs.m_is_end && rhs.m_is_end) {
4668
            return true;
4669
        }
4670
        if (lhs.m_is_end != rhs.m_is_end) {
4671
            return false;
4672
        }
4673
        return static_cast<const forward_iterator&>(lhs) ==
4674
               static_cast<const forward_iterator&>(rhs);
4675
    }
4676
4677
    friend bool operator!=(const common_forward_iterator& lhs,
4678
                           const common_forward_iterator& rhs)
4679
    {
4680
        return !(lhs == rhs);
4681
    }
4682
4683
private:
4684
    bool m_is_end{};
4685
};
4686
4687
template <typename CharT>
4688
SCN_NODISCARD auto basic_scan_buffer<CharT>::get() -> range_type
4689
3.47M
{
4690
3.47M
    if (is_contiguous()) {
4691
0
        return ranges::subrange{forward_iterator{m_current_view, 0},
4692
0
                                ranges::default_sentinel};
4693
0
    }
4694
3.47M
    return ranges::subrange{forward_iterator{this, 0},
4695
3.47M
                            ranges::default_sentinel};
4696
3.47M
}
scn::v4::detail::basic_scan_buffer<char>::get()
Line
Count
Source
4689
357k
{
4690
357k
    if (is_contiguous()) {
4691
0
        return ranges::subrange{forward_iterator{m_current_view, 0},
4692
0
                                ranges::default_sentinel};
4693
0
    }
4694
357k
    return ranges::subrange{forward_iterator{this, 0},
4695
357k
                            ranges::default_sentinel};
4696
357k
}
scn::v4::detail::basic_scan_buffer<wchar_t>::get()
Line
Count
Source
4689
3.12M
{
4690
3.12M
    if (is_contiguous()) {
4691
0
        return ranges::subrange{forward_iterator{m_current_view, 0},
4692
0
                                ranges::default_sentinel};
4693
0
    }
4694
3.12M
    return ranges::subrange{forward_iterator{this, 0},
4695
3.12M
                            ranges::default_sentinel};
4696
3.12M
}
4697
4698
template <typename CharT>
4699
SCN_NODISCARD auto basic_scan_buffer<CharT>::get_common_range()
4700
    -> common_range_type
4701
{
4702
    auto r = get();
4703
    return ranges::subrange{common_forward_iterator{r.begin()},
4704
                            common_forward_iterator{r.end()}};
4705
}
4706
4707
static_assert(ranges::forward_range<scan_buffer::range_type>);
4708
4709
template <typename CharT>
4710
class basic_scan_string_buffer : public basic_scan_buffer<CharT> {
4711
    using base = basic_scan_buffer<CharT>;
4712
4713
public:
4714
    basic_scan_string_buffer(std::basic_string_view<CharT> sv)
4715
0
        : base(typename base::contiguous_tag{}, sv)
4716
0
    {
4717
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_string_buffer<char>::basic_scan_string_buffer(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: scn::v4::detail::basic_scan_string_buffer<wchar_t>::basic_scan_string_buffer(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4718
4719
    bool fill() override
4720
0
    {
4721
0
        SCN_EXPECT(false);
4722
0
        SCN_UNREACHABLE;
4723
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_string_buffer<char>::fill()
Unexecuted instantiation: scn::v4::detail::basic_scan_string_buffer<wchar_t>::fill()
4724
};
4725
4726
template <typename CharT>
4727
basic_scan_string_buffer(std::basic_string_view<CharT>)
4728
    -> basic_scan_string_buffer<CharT>;
4729
4730
template <typename CharT>
4731
class basic_scan_forward_buffer_base : public basic_scan_buffer<CharT> {
4732
    using base = basic_scan_buffer<CharT>;
4733
4734
protected:
4735
3.47M
    basic_scan_forward_buffer_base() : base(typename base::non_contiguous_tag{})
4736
3.47M
    {
4737
3.47M
    }
scn::v4::detail::basic_scan_forward_buffer_base<char>::basic_scan_forward_buffer_base()
Line
Count
Source
4735
357k
    basic_scan_forward_buffer_base() : base(typename base::non_contiguous_tag{})
4736
357k
    {
4737
357k
    }
scn::v4::detail::basic_scan_forward_buffer_base<wchar_t>::basic_scan_forward_buffer_base()
Line
Count
Source
4735
3.12M
    basic_scan_forward_buffer_base() : base(typename base::non_contiguous_tag{})
4736
3.12M
    {
4737
3.12M
    }
4738
};
4739
4740
template <typename I, typename S>
4741
using less_than_compare =
4742
    decltype(SCN_DECLVAL(const I&) < SCN_DECLVAL(const S&));
4743
4744
template <typename Range>
4745
class basic_scan_forward_buffer_impl
4746
    : public basic_scan_forward_buffer_base<detail::char_t<Range>> {
4747
    static_assert(ranges::range<const Range> && std::is_object_v<Range>);
4748
4749
    using _char_type = detail::char_t<Range>;
4750
    using base = basic_scan_forward_buffer_base<_char_type>;
4751
4752
public:
4753
    using char_type = _char_type;
4754
    using range_type = Range;
4755
    using iterator = ranges::iterator_t<const Range>;
4756
    using sentinel = ranges::sentinel_t<const Range>;
4757
4758
    template <
4759
        typename R,
4760
        std::enable_if_t<is_not_self<R, basic_scan_forward_buffer_impl> &&
4761
                         std::is_convertible_v<R, const Range&>>* = nullptr>
4762
    basic_scan_forward_buffer_impl(R&& r)
4763
3.47M
        : m_range(std::addressof(static_cast<const Range&>(SCN_FWD(r)))),
4764
3.47M
          m_cursor(ranges::begin(*m_range))
4765
3.47M
    {
4766
3.47M
    }
_ZN3scn2v46detail30basic_scan_forward_buffer_implINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEEC2IRKSF_TnPNS7_9enable_ifIXaa11is_not_selfIT_SG_Esr3stdE16is_convertible_vISL_SJ_EEvE4typeELPv0EEEOSL_
Line
Count
Source
4763
357k
        : m_range(std::addressof(static_cast<const Range&>(SCN_FWD(r)))),
4764
357k
          m_cursor(ranges::begin(*m_range))
4765
357k
    {
4766
357k
    }
_ZN3scn2v46detail30basic_scan_forward_buffer_implINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEEC2IRKSF_TnPNS7_9enable_ifIXaa11is_not_selfIT_SG_Esr3stdE16is_convertible_vISL_SJ_EEvE4typeELPv0EEEOSL_
Line
Count
Source
4763
3.12M
        : m_range(std::addressof(static_cast<const Range&>(SCN_FWD(r)))),
4764
3.12M
          m_cursor(ranges::begin(*m_range))
4765
3.12M
    {
4766
3.12M
    }
4767
4768
    bool fill() override
4769
77.6M
    {
4770
77.6M
        if (m_cursor == ranges::end(*m_range)) {
4771
89.9k
            return false;
4772
89.9k
        }
4773
77.5M
        if constexpr (mp_valid_v<less_than_compare, iterator, sentinel>) {
4774
77.5M
            SCN_EXPECT(m_cursor < ranges::end(*m_range));
4775
77.5M
        }
4776
77.5M
        if (!this->m_current_view.empty()) {
4777
74.1M
            this->m_putback_buffer.insert(this->m_putback_buffer.end(),
4778
74.1M
                                          this->m_current_view.begin(),
4779
74.1M
                                          this->m_current_view.end());
4780
74.1M
        }
4781
77.5M
        m_latest = *m_cursor;
4782
77.5M
        ++m_cursor;
4783
77.5M
        this->m_current_view = std::basic_string_view<char_type>{&m_latest, 1};
4784
77.5M
        if constexpr (mp_valid_v<less_than_compare, iterator, sentinel>) {
4785
77.5M
            SCN_EXPECT(m_cursor <= ranges::end(*m_range));
4786
77.5M
        }
4787
77.5M
        return true;
4788
77.6M
    }
scn::v4::detail::basic_scan_forward_buffer_impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::fill()
Line
Count
Source
4769
4.30M
    {
4770
4.30M
        if (m_cursor == ranges::end(*m_range)) {
4771
38.1k
            return false;
4772
38.1k
        }
4773
4.26M
        if constexpr (mp_valid_v<less_than_compare, iterator, sentinel>) {
4774
4.26M
            SCN_EXPECT(m_cursor < ranges::end(*m_range));
4775
4.26M
        }
4776
4.26M
        if (!this->m_current_view.empty()) {
4777
3.92M
            this->m_putback_buffer.insert(this->m_putback_buffer.end(),
4778
3.92M
                                          this->m_current_view.begin(),
4779
3.92M
                                          this->m_current_view.end());
4780
3.92M
        }
4781
4.26M
        m_latest = *m_cursor;
4782
4.26M
        ++m_cursor;
4783
4.26M
        this->m_current_view = std::basic_string_view<char_type>{&m_latest, 1};
4784
4.26M
        if constexpr (mp_valid_v<less_than_compare, iterator, sentinel>) {
4785
4.26M
            SCN_EXPECT(m_cursor <= ranges::end(*m_range));
4786
4.26M
        }
4787
4.26M
        return true;
4788
4.30M
    }
scn::v4::detail::basic_scan_forward_buffer_impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::fill()
Line
Count
Source
4769
73.3M
    {
4770
73.3M
        if (m_cursor == ranges::end(*m_range)) {
4771
51.8k
            return false;
4772
51.8k
        }
4773
73.2M
        if constexpr (mp_valid_v<less_than_compare, iterator, sentinel>) {
4774
73.2M
            SCN_EXPECT(m_cursor < ranges::end(*m_range));
4775
73.2M
        }
4776
73.2M
        if (!this->m_current_view.empty()) {
4777
70.2M
            this->m_putback_buffer.insert(this->m_putback_buffer.end(),
4778
70.2M
                                          this->m_current_view.begin(),
4779
70.2M
                                          this->m_current_view.end());
4780
70.2M
        }
4781
73.2M
        m_latest = *m_cursor;
4782
73.2M
        ++m_cursor;
4783
73.2M
        this->m_current_view = std::basic_string_view<char_type>{&m_latest, 1};
4784
73.2M
        if constexpr (mp_valid_v<less_than_compare, iterator, sentinel>) {
4785
73.2M
            SCN_EXPECT(m_cursor <= ranges::end(*m_range));
4786
73.2M
        }
4787
73.2M
        return true;
4788
73.3M
    }
4789
4790
private:
4791
    const Range* m_range;
4792
    iterator m_cursor;
4793
    char_type m_latest{};
4794
};
4795
4796
template <typename R>
4797
basic_scan_forward_buffer_impl(const R&) -> basic_scan_forward_buffer_impl<R>;
4798
4799
class scan_file_buffer : public basic_scan_buffer<char> {
4800
    using base = basic_scan_buffer<char>;
4801
4802
public:
4803
    scan_file_buffer(std::FILE* file);
4804
    ~scan_file_buffer();
4805
4806
    bool fill() override;
4807
    void sync(std::ptrdiff_t position) override;
4808
4809
private:
4810
    std::FILE* m_file;
4811
    std::optional<char_type> m_latest{std::nullopt};
4812
};
4813
4814
template <typename CharT>
4815
class basic_scan_ref_buffer : public basic_scan_buffer<CharT> {
4816
    using base = basic_scan_buffer<CharT>;
4817
4818
public:
4819
    basic_scan_ref_buffer(base& other, std::ptrdiff_t starting_pos)
4820
0
        : base(other.is_contiguous(), std::basic_string_view<CharT>{}),
4821
0
          m_other(&other),
4822
0
          m_starting_pos(starting_pos)
4823
0
    {
4824
0
        this->m_current_view = other.get_segment_starting_at(starting_pos);
4825
0
        m_fill_needs_to_propagate = other.get_segment_starting_at(0).end() ==
4826
0
                                    this->m_current_view.end();
4827
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<char>::basic_scan_ref_buffer(scn::v4::detail::basic_scan_buffer<char>&, long)
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<wchar_t>::basic_scan_ref_buffer(scn::v4::detail::basic_scan_buffer<wchar_t>&, long)
4828
4829
    basic_scan_ref_buffer(std::basic_string_view<CharT> view)
4830
0
        : base(true, view), m_other(nullptr)
4831
0
    {
4832
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<char>::basic_scan_ref_buffer(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<wchar_t>::basic_scan_ref_buffer(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4833
4834
    bool fill() override
4835
0
    {
4836
0
        if (!m_other) {
4837
0
            return false;
4838
0
        }
4839
0
        SCN_EXPECT(m_starting_pos >= 0);
4840
4841
0
        if (m_fill_needs_to_propagate) {
4842
0
            auto ret = m_other->fill();
4843
0
            this->m_current_view = m_other->current_view();
4844
0
            this->m_putback_buffer =
4845
0
                m_other->putback_buffer().substr(m_starting_pos);
4846
0
            return ret;
4847
0
        }
4848
4849
0
        m_fill_needs_to_propagate = true;
4850
0
        this->m_putback_buffer = std::basic_string<CharT>{this->m_current_view};
4851
0
        this->m_current_view = m_other->current_view();
4852
0
        return true;
4853
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<char>::fill()
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<wchar_t>::fill()
4854
4855
private:
4856
    base* m_other;
4857
    std::ptrdiff_t m_starting_pos{-1};
4858
    bool m_fill_needs_to_propagate{false};
4859
};
4860
4861
template <typename CharT>
4862
basic_scan_ref_buffer(basic_scan_buffer<CharT>&, std::ptrdiff_t)
4863
    -> basic_scan_ref_buffer<CharT>;
4864
4865
template <typename CharT>
4866
basic_scan_ref_buffer(std::basic_string_view<CharT>)
4867
    -> basic_scan_ref_buffer<CharT>;
4868
4869
template <typename Range>
4870
auto make_string_scan_buffer(const Range& range)
4871
{
4872
    return basic_scan_string_buffer(
4873
        std::basic_string_view{ranges::data(range), ranges::size(range)});
4874
}
4875
4876
template <typename Range>
4877
auto make_forward_scan_buffer(const Range& range)
4878
3.47M
{
4879
3.47M
    return basic_scan_forward_buffer_impl(range);
4880
3.47M
}
auto scn::v4::detail::make_forward_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&)
Line
Count
Source
4878
357k
{
4879
357k
    return basic_scan_forward_buffer_impl(range);
4880
357k
}
auto scn::v4::detail::make_forward_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&)
Line
Count
Source
4878
3.12M
{
4879
3.12M
    return basic_scan_forward_buffer_impl(range);
4880
3.12M
}
4881
4882
inline auto make_file_scan_buffer(std::FILE* file)
4883
0
{
4884
0
    return scan_file_buffer(file);
4885
0
}
4886
}  // namespace detail
4887
4888
/////////////////////////////////////////////////////////////////
4889
// make_scan_buffer
4890
/////////////////////////////////////////////////////////////////
4891
4892
/**
4893
 * \defgroup scannable Scannable sources
4894
 *
4895
 * \brief Description of the `scannable_range` and `scannable_source`
4896
 * concepts.
4897
 *
4898
 * A range is considered scannable, if it models at least `forward_range`,
4899
 * and its character type is correct (its value type is the same as the one
4900
 * of the format string).
4901
 * If the range additionally models `contiguous_range` and `sized_range`,
4902
 * additional optimizations are enabled.
4903
 *
4904
 * \code{.cpp}
4905
 * // Exposition only
4906
 * template <typename Range, typename CharT>
4907
 * concept scannable_range =
4908
 *     ranges::forward_range<Range> &&
4909
 *     std::same_as<ranges::range_value_t<Range>, CharT>;
4910
 * \endcode
4911
 *
4912
 * Additionally, files (`std::FILE*`) can be scanned from.
4913
 * Files are always considered to be narrow (`char`-oriented).
4914
 * Thus, the entire concept is:
4915
 *
4916
 * \code{.cpp}
4917
 * // Exposition only
4918
 * template <typename Source, typename CharT>
4919
 * concept scannable_source =
4920
 *   (std::same_as<std::remove_cvref_t<Source>, std::FILE*> &&
4921
 *    std::same_as<CharT, char>) ||
4922
 *   scannable_range<Source, CharT>;
4923
 * \endcode
4924
 */
4925
4926
/**
4927
 * Tag type to indicate an invalid range given to `scn::scan`
4928
 *
4929
 * \ingroup scannable
4930
 */
4931
struct invalid_input_range {};
4932
4933
struct invalid_char_type : invalid_input_range {};
4934
struct custom_char_traits : invalid_input_range {};
4935
struct file_marker_found : invalid_input_range {};
4936
struct insufficient_range : invalid_input_range {};
4937
4938
namespace detail {
4939
template <typename CharT>
4940
inline constexpr bool is_valid_char_type =
4941
    std::is_same_v<std::remove_const_t<CharT>, char> ||
4942
    std::is_same_v<std::remove_const_t<CharT>, wchar_t>;
4943
4944
namespace _make_scan_buffer {
4945
// buffer -> ref_buffer
4946
inline auto impl(scan_buffer::range_type r, priority_tag<4>) noexcept
4947
    -> basic_scan_ref_buffer<char>
4948
0
{
4949
0
    if (!r.begin().stores_parent()) {
4950
0
        return basic_scan_ref_buffer{r.begin().contiguous_segment()};
4951
0
    }
4952
0
    return basic_scan_ref_buffer{*r.begin().parent(), r.begin().position()};
4953
0
}
4954
inline auto impl(wscan_buffer::range_type r, priority_tag<4>) noexcept
4955
    -> basic_scan_ref_buffer<wchar_t>
4956
0
{
4957
0
    if (!r.begin().stores_parent()) {
4958
0
        return basic_scan_ref_buffer{r.begin().contiguous_segment()};
4959
0
    }
4960
0
    return basic_scan_ref_buffer{*r.begin().parent(), r.begin().position()};
4961
0
}
4962
4963
// string_view -> string_buffer
4964
template <typename CharT>
4965
auto impl(std::basic_string_view<CharT> r, priority_tag<3>) noexcept
4966
{
4967
    if constexpr (is_valid_char_type<CharT>) {
4968
        return r;
4969
        // return make_string_scan_buffer(r);
4970
    }
4971
    else {
4972
        return invalid_char_type{};
4973
    }
4974
}
4975
4976
// string& -> string_buffer
4977
template <typename CharT, typename Traits, typename Allocator>
4978
auto impl(const std::basic_string<CharT, Traits, Allocator>& r,
4979
          priority_tag<3>) noexcept
4980
0
{
4981
    if constexpr (!is_valid_char_type<CharT>) {
4982
        return invalid_char_type{};
4983
    }
4984
    else if constexpr (!std::is_same_v<Traits, std::char_traits<CharT>>) {
4985
        return custom_char_traits{};
4986
    }
4987
0
    else {
4988
0
        return std::basic_string_view<CharT>{r};
4989
0
    }
4990
0
}
4991
4992
// String literals:
4993
// CharT(&)[] -> string_buffer
4994
template <typename CharT,
4995
          std::size_t N,
4996
          std::enable_if_t<is_valid_char_type<CharT>>* = nullptr>
4997
auto impl(const CharT (&r)[N], priority_tag<3>) noexcept
4998
{
4999
    return std::basic_string_view<CharT>{r, N - 1};
5000
}
5001
5002
// FILE* -> file_buffer
5003
inline auto impl(std::FILE* file, priority_tag<3>)
5004
0
{
5005
0
    return make_file_scan_buffer(file);
5006
0
}
5007
5008
// contiguous + sized -> string_buffer
5009
template <typename Range,
5010
          std::enable_if_t<ranges::contiguous_range<Range> &&
5011
                           ranges::sized_range<Range>>* = nullptr>
5012
auto impl(const Range& r, priority_tag<2>)
5013
6.83M
{
5014
6.83M
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
5015
6.83M
        return std::basic_string_view{ranges::data(r), ranges::size(r)};
5016
    }
5017
    else {
5018
        return invalid_char_type{};
5019
    }
5020
6.83M
}
_ZN3scn2v46detail17_make_scan_buffer4implINS0_6ranges6detail9subrange_8subrangeIPKcS9_EETnPNSt3__19enable_ifIXaasr6rangesE16contiguous_rangeIT_Esr6rangesE11sized_rangeISD_EEvE4typeELPv0EEEDaRKSD_NS1_12priority_tagILm2EEE
Line
Count
Source
5013
597k
{
5014
597k
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
5015
597k
        return std::basic_string_view{ranges::data(r), ranges::size(r)};
5016
    }
5017
    else {
5018
        return invalid_char_type{};
5019
    }
5020
597k
}
_ZN3scn2v46detail17_make_scan_buffer4implINS0_6ranges6detail9subrange_8subrangeIPKwS9_EETnPNSt3__19enable_ifIXaasr6rangesE16contiguous_rangeIT_Esr6rangesE11sized_rangeISD_EEvE4typeELPv0EEEDaRKSD_NS1_12priority_tagILm2EEE
Line
Count
Source
5013
6.24M
{
5014
6.24M
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
5015
6.24M
        return std::basic_string_view{ranges::data(r), ranges::size(r)};
5016
    }
5017
    else {
5018
        return invalid_char_type{};
5019
    }
5020
6.24M
}
5021
5022
// !contiguous + random-access + iterator can be made into a ptr
5023
// for MSVC debug iterators
5024
//   -> string_buffer
5025
template <typename Range,
5026
          std::enable_if_t<!ranges::contiguous_range<Range> &&
5027
                           ranges::random_access_range<Range> &&
5028
                           can_make_address_from_iterator<
5029
                               ranges::iterator_t<Range>>>* = nullptr>
5030
auto impl(const Range& r, priority_tag<1>)
5031
{
5032
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
5033
        return make_string_view_from_pointers(to_address(ranges::begin(r)),
5034
                                              to_address(ranges::end(r)));
5035
    }
5036
    else {
5037
        return invalid_char_type{};
5038
    }
5039
}
5040
5041
// forward -> forward_buffer<R>
5042
template <typename Range>
5043
auto impl(const Range& r, priority_tag<0>)
5044
3.47M
{
5045
    if constexpr (std::is_same_v<Range, file_marker>) {
5046
        return file_marker_found{};
5047
    }
5048
    else if constexpr (!ranges::forward_range<Range>) {
5049
        if constexpr (ranges::range<Range>) {
5050
            return insufficient_range{};
5051
        }
5052
        else {
5053
            return invalid_input_range{};
5054
        }
5055
    }
5056
    else if constexpr (!is_valid_char_type<detail::char_t<Range>>) {
5057
        return invalid_char_type{};
5058
    }
5059
3.47M
    else {
5060
3.47M
        return make_forward_scan_buffer(r);
5061
3.47M
    }
5062
3.47M
}
auto scn::v4::detail::_make_scan_buffer::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&, scn::v4::detail::priority_tag<0ul>)
Line
Count
Source
5044
357k
{
5045
    if constexpr (std::is_same_v<Range, file_marker>) {
5046
        return file_marker_found{};
5047
    }
5048
    else if constexpr (!ranges::forward_range<Range>) {
5049
        if constexpr (ranges::range<Range>) {
5050
            return insufficient_range{};
5051
        }
5052
        else {
5053
            return invalid_input_range{};
5054
        }
5055
    }
5056
    else if constexpr (!is_valid_char_type<detail::char_t<Range>>) {
5057
        return invalid_char_type{};
5058
    }
5059
357k
    else {
5060
357k
        return make_forward_scan_buffer(r);
5061
357k
    }
5062
357k
}
auto scn::v4::detail::_make_scan_buffer::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&, scn::v4::detail::priority_tag<0ul>)
Line
Count
Source
5044
3.12M
{
5045
    if constexpr (std::is_same_v<Range, file_marker>) {
5046
        return file_marker_found{};
5047
    }
5048
    else if constexpr (!ranges::forward_range<Range>) {
5049
        if constexpr (ranges::range<Range>) {
5050
            return insufficient_range{};
5051
        }
5052
        else {
5053
            return invalid_input_range{};
5054
        }
5055
    }
5056
    else if constexpr (!is_valid_char_type<detail::char_t<Range>>) {
5057
        return invalid_char_type{};
5058
    }
5059
3.12M
    else {
5060
3.12M
        return make_forward_scan_buffer(r);
5061
3.12M
    }
5062
3.12M
}
5063
}  // namespace _make_scan_buffer
5064
5065
template <typename Range>
5066
inline constexpr bool is_scannable_range =
5067
    !std::is_base_of_v<invalid_input_range,
5068
                       decltype(_make_scan_buffer::impl(
5069
                                    SCN_DECLVAL(const Range&)),
5070
                                priority_tag<4>{})>;
5071
5072
template <typename Range>
5073
auto make_scan_buffer(const Range& range)
5074
10.3M
{
5075
10.3M
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
5076
5077
10.3M
    static_assert(!std::is_same_v<T, invalid_char_type>,
5078
10.3M
                  "\n"
5079
10.3M
                  "Unsupported range type given as input to a scanning "
5080
10.3M
                  "function.\n"
5081
10.3M
                  "A range needs to have a character type (value type) "
5082
10.3M
                  "of either `char` or `wchar_t` to be scannable.\n"
5083
10.3M
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
5084
10.3M
                  "to be included.\n"
5085
10.3M
                  "See the scnlib documentation for more details.");
5086
10.3M
    static_assert(
5087
10.3M
        !std::is_same_v<T, custom_char_traits>,
5088
10.3M
        "\n"
5089
10.3M
        "Unsupported range type given as input to a scanning "
5090
10.3M
        "function.\n"
5091
10.3M
        "String types (std::basic_string, and std::basic_string_view) "
5092
10.3M
        "need to use std::char_traits. Strings with custom Traits are "
5093
10.3M
        "not supported.");
5094
10.3M
    static_assert(!std::is_same_v<T, file_marker_found>,
5095
10.3M
                  "\n"
5096
10.3M
                  "Unsupported range type given as input to a scanning "
5097
10.3M
                  "function.\n"
5098
10.3M
                  "file_marker_found cannot be used as an "
5099
10.3M
                  "source range type to scn::scan.\n"
5100
10.3M
                  "To read from stdin, use scn::input or scn::prompt, "
5101
10.3M
                  "and do not provide an explicit source range, "
5102
10.3M
                  "or use scn::scan with a FILE* directly.");
5103
10.3M
    static_assert(!std::is_same_v<T, insufficient_range>,
5104
10.3M
                  "\n"
5105
10.3M
                  "Unsupported range type given as input to a scanning "
5106
10.3M
                  "function.\n"
5107
10.3M
                  "In order to be scannable, a range needs to satisfy "
5108
10.3M
                  "`forward_range`. `input_range` is not sufficient.");
5109
10.3M
    static_assert(!std::is_same_v<T, invalid_input_range>,
5110
10.3M
                  "\n"
5111
10.3M
                  "Unsupported range type given as input to a scanning "
5112
10.3M
                  "function.\n"
5113
10.3M
                  "A range needs to model forward_range and have a valid "
5114
10.3M
                  "character type (char or wchar_t) to be scannable.\n"
5115
10.3M
                  "Examples of scannable ranges are std::string, "
5116
10.3M
                  "std::string_view, "
5117
10.3M
                  "std::vector<char>, and scn::istreambuf_view.\n"
5118
10.3M
                  "See the scnlib documentation for more details.");
5119
5120
10.3M
    return _make_scan_buffer::impl(range, priority_tag<4>{});
5121
10.3M
}
auto scn::v4::detail::make_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&)
Line
Count
Source
5074
597k
{
5075
597k
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
5076
5077
597k
    static_assert(!std::is_same_v<T, invalid_char_type>,
5078
597k
                  "\n"
5079
597k
                  "Unsupported range type given as input to a scanning "
5080
597k
                  "function.\n"
5081
597k
                  "A range needs to have a character type (value type) "
5082
597k
                  "of either `char` or `wchar_t` to be scannable.\n"
5083
597k
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
5084
597k
                  "to be included.\n"
5085
597k
                  "See the scnlib documentation for more details.");
5086
597k
    static_assert(
5087
597k
        !std::is_same_v<T, custom_char_traits>,
5088
597k
        "\n"
5089
597k
        "Unsupported range type given as input to a scanning "
5090
597k
        "function.\n"
5091
597k
        "String types (std::basic_string, and std::basic_string_view) "
5092
597k
        "need to use std::char_traits. Strings with custom Traits are "
5093
597k
        "not supported.");
5094
597k
    static_assert(!std::is_same_v<T, file_marker_found>,
5095
597k
                  "\n"
5096
597k
                  "Unsupported range type given as input to a scanning "
5097
597k
                  "function.\n"
5098
597k
                  "file_marker_found cannot be used as an "
5099
597k
                  "source range type to scn::scan.\n"
5100
597k
                  "To read from stdin, use scn::input or scn::prompt, "
5101
597k
                  "and do not provide an explicit source range, "
5102
597k
                  "or use scn::scan with a FILE* directly.");
5103
597k
    static_assert(!std::is_same_v<T, insufficient_range>,
5104
597k
                  "\n"
5105
597k
                  "Unsupported range type given as input to a scanning "
5106
597k
                  "function.\n"
5107
597k
                  "In order to be scannable, a range needs to satisfy "
5108
597k
                  "`forward_range`. `input_range` is not sufficient.");
5109
597k
    static_assert(!std::is_same_v<T, invalid_input_range>,
5110
597k
                  "\n"
5111
597k
                  "Unsupported range type given as input to a scanning "
5112
597k
                  "function.\n"
5113
597k
                  "A range needs to model forward_range and have a valid "
5114
597k
                  "character type (char or wchar_t) to be scannable.\n"
5115
597k
                  "Examples of scannable ranges are std::string, "
5116
597k
                  "std::string_view, "
5117
597k
                  "std::vector<char>, and scn::istreambuf_view.\n"
5118
597k
                  "See the scnlib documentation for more details.");
5119
5120
597k
    return _make_scan_buffer::impl(range, priority_tag<4>{});
5121
597k
}
auto scn::v4::detail::make_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > const&)
Line
Count
Source
5074
357k
{
5075
357k
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
5076
5077
357k
    static_assert(!std::is_same_v<T, invalid_char_type>,
5078
357k
                  "\n"
5079
357k
                  "Unsupported range type given as input to a scanning "
5080
357k
                  "function.\n"
5081
357k
                  "A range needs to have a character type (value type) "
5082
357k
                  "of either `char` or `wchar_t` to be scannable.\n"
5083
357k
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
5084
357k
                  "to be included.\n"
5085
357k
                  "See the scnlib documentation for more details.");
5086
357k
    static_assert(
5087
357k
        !std::is_same_v<T, custom_char_traits>,
5088
357k
        "\n"
5089
357k
        "Unsupported range type given as input to a scanning "
5090
357k
        "function.\n"
5091
357k
        "String types (std::basic_string, and std::basic_string_view) "
5092
357k
        "need to use std::char_traits. Strings with custom Traits are "
5093
357k
        "not supported.");
5094
357k
    static_assert(!std::is_same_v<T, file_marker_found>,
5095
357k
                  "\n"
5096
357k
                  "Unsupported range type given as input to a scanning "
5097
357k
                  "function.\n"
5098
357k
                  "file_marker_found cannot be used as an "
5099
357k
                  "source range type to scn::scan.\n"
5100
357k
                  "To read from stdin, use scn::input or scn::prompt, "
5101
357k
                  "and do not provide an explicit source range, "
5102
357k
                  "or use scn::scan with a FILE* directly.");
5103
357k
    static_assert(!std::is_same_v<T, insufficient_range>,
5104
357k
                  "\n"
5105
357k
                  "Unsupported range type given as input to a scanning "
5106
357k
                  "function.\n"
5107
357k
                  "In order to be scannable, a range needs to satisfy "
5108
357k
                  "`forward_range`. `input_range` is not sufficient.");
5109
357k
    static_assert(!std::is_same_v<T, invalid_input_range>,
5110
357k
                  "\n"
5111
357k
                  "Unsupported range type given as input to a scanning "
5112
357k
                  "function.\n"
5113
357k
                  "A range needs to model forward_range and have a valid "
5114
357k
                  "character type (char or wchar_t) to be scannable.\n"
5115
357k
                  "Examples of scannable ranges are std::string, "
5116
357k
                  "std::string_view, "
5117
357k
                  "std::vector<char>, and scn::istreambuf_view.\n"
5118
357k
                  "See the scnlib documentation for more details.");
5119
5120
357k
    return _make_scan_buffer::impl(range, priority_tag<4>{});
5121
357k
}
auto scn::v4::detail::make_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&)
Line
Count
Source
5074
6.24M
{
5075
6.24M
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
5076
5077
6.24M
    static_assert(!std::is_same_v<T, invalid_char_type>,
5078
6.24M
                  "\n"
5079
6.24M
                  "Unsupported range type given as input to a scanning "
5080
6.24M
                  "function.\n"
5081
6.24M
                  "A range needs to have a character type (value type) "
5082
6.24M
                  "of either `char` or `wchar_t` to be scannable.\n"
5083
6.24M
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
5084
6.24M
                  "to be included.\n"
5085
6.24M
                  "See the scnlib documentation for more details.");
5086
6.24M
    static_assert(
5087
6.24M
        !std::is_same_v<T, custom_char_traits>,
5088
6.24M
        "\n"
5089
6.24M
        "Unsupported range type given as input to a scanning "
5090
6.24M
        "function.\n"
5091
6.24M
        "String types (std::basic_string, and std::basic_string_view) "
5092
6.24M
        "need to use std::char_traits. Strings with custom Traits are "
5093
6.24M
        "not supported.");
5094
6.24M
    static_assert(!std::is_same_v<T, file_marker_found>,
5095
6.24M
                  "\n"
5096
6.24M
                  "Unsupported range type given as input to a scanning "
5097
6.24M
                  "function.\n"
5098
6.24M
                  "file_marker_found cannot be used as an "
5099
6.24M
                  "source range type to scn::scan.\n"
5100
6.24M
                  "To read from stdin, use scn::input or scn::prompt, "
5101
6.24M
                  "and do not provide an explicit source range, "
5102
6.24M
                  "or use scn::scan with a FILE* directly.");
5103
6.24M
    static_assert(!std::is_same_v<T, insufficient_range>,
5104
6.24M
                  "\n"
5105
6.24M
                  "Unsupported range type given as input to a scanning "
5106
6.24M
                  "function.\n"
5107
6.24M
                  "In order to be scannable, a range needs to satisfy "
5108
6.24M
                  "`forward_range`. `input_range` is not sufficient.");
5109
6.24M
    static_assert(!std::is_same_v<T, invalid_input_range>,
5110
6.24M
                  "\n"
5111
6.24M
                  "Unsupported range type given as input to a scanning "
5112
6.24M
                  "function.\n"
5113
6.24M
                  "A range needs to model forward_range and have a valid "
5114
6.24M
                  "character type (char or wchar_t) to be scannable.\n"
5115
6.24M
                  "Examples of scannable ranges are std::string, "
5116
6.24M
                  "std::string_view, "
5117
6.24M
                  "std::vector<char>, and scn::istreambuf_view.\n"
5118
6.24M
                  "See the scnlib documentation for more details.");
5119
5120
6.24M
    return _make_scan_buffer::impl(range, priority_tag<4>{});
5121
6.24M
}
auto scn::v4::detail::make_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > const&)
Line
Count
Source
5074
3.12M
{
5075
3.12M
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
5076
5077
3.12M
    static_assert(!std::is_same_v<T, invalid_char_type>,
5078
3.12M
                  "\n"
5079
3.12M
                  "Unsupported range type given as input to a scanning "
5080
3.12M
                  "function.\n"
5081
3.12M
                  "A range needs to have a character type (value type) "
5082
3.12M
                  "of either `char` or `wchar_t` to be scannable.\n"
5083
3.12M
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
5084
3.12M
                  "to be included.\n"
5085
3.12M
                  "See the scnlib documentation for more details.");
5086
3.12M
    static_assert(
5087
3.12M
        !std::is_same_v<T, custom_char_traits>,
5088
3.12M
        "\n"
5089
3.12M
        "Unsupported range type given as input to a scanning "
5090
3.12M
        "function.\n"
5091
3.12M
        "String types (std::basic_string, and std::basic_string_view) "
5092
3.12M
        "need to use std::char_traits. Strings with custom Traits are "
5093
3.12M
        "not supported.");
5094
3.12M
    static_assert(!std::is_same_v<T, file_marker_found>,
5095
3.12M
                  "\n"
5096
3.12M
                  "Unsupported range type given as input to a scanning "
5097
3.12M
                  "function.\n"
5098
3.12M
                  "file_marker_found cannot be used as an "
5099
3.12M
                  "source range type to scn::scan.\n"
5100
3.12M
                  "To read from stdin, use scn::input or scn::prompt, "
5101
3.12M
                  "and do not provide an explicit source range, "
5102
3.12M
                  "or use scn::scan with a FILE* directly.");
5103
3.12M
    static_assert(!std::is_same_v<T, insufficient_range>,
5104
3.12M
                  "\n"
5105
3.12M
                  "Unsupported range type given as input to a scanning "
5106
3.12M
                  "function.\n"
5107
3.12M
                  "In order to be scannable, a range needs to satisfy "
5108
3.12M
                  "`forward_range`. `input_range` is not sufficient.");
5109
3.12M
    static_assert(!std::is_same_v<T, invalid_input_range>,
5110
3.12M
                  "\n"
5111
3.12M
                  "Unsupported range type given as input to a scanning "
5112
3.12M
                  "function.\n"
5113
3.12M
                  "A range needs to model forward_range and have a valid "
5114
3.12M
                  "character type (char or wchar_t) to be scannable.\n"
5115
3.12M
                  "Examples of scannable ranges are std::string, "
5116
3.12M
                  "std::string_view, "
5117
3.12M
                  "std::vector<char>, and scn::istreambuf_view.\n"
5118
3.12M
                  "See the scnlib documentation for more details.");
5119
5120
3.12M
    return _make_scan_buffer::impl(range, priority_tag<4>{});
5121
3.12M
}
Unexecuted instantiation: auto scn::v4::detail::make_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
Unexecuted instantiation: auto scn::v4::detail::make_scan_buffer<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: auto scn::v4::detail::make_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
5122
5123
template <
5124
    typename Range,
5125
    std::enable_if_t<
5126
        !std::is_reference_v<Range> && !ranges::borrowed_range<Range> &&
5127
        !std::is_same_v<std::FILE*, std::remove_reference_t<Range>>>* = nullptr>
5128
auto make_scan_buffer(Range&&) = delete;
5129
}  // namespace detail
5130
5131
/////////////////////////////////////////////////////////////////
5132
// Argument type erasure
5133
/////////////////////////////////////////////////////////////////
5134
5135
namespace detail {
5136
enum class arg_type : unsigned char {
5137
    none_type,
5138
    schar_type,
5139
    short_type,
5140
    int_type,
5141
    long_type,
5142
    llong_type,
5143
    uchar_type,
5144
    ushort_type,
5145
    uint_type,
5146
    ulong_type,
5147
    ullong_type,
5148
    bool_type,
5149
    narrow_character_type,
5150
    wide_character_type,
5151
    code_point_type,
5152
    pointer_type,
5153
    float_type,
5154
    double_type,
5155
    ldouble_type,
5156
    narrow_string_view_type,
5157
    wide_string_view_type,
5158
    narrow_string_type,
5159
    wide_string_type,
5160
    narrow_regex_matches_type,
5161
    wide_regex_matches_type,
5162
    custom_type,
5163
    last_type = custom_type
5164
};
5165
5166
template <typename>
5167
inline constexpr bool is_type_disabled = SCN_DISABLE_TYPE_CUSTOM;
5168
5169
template <typename T, typename CharT>
5170
struct arg_type_constant
5171
    : std::integral_constant<arg_type, arg_type::custom_type> {
5172
    using type = T;
5173
};
5174
5175
#define SCN_TYPE_CONSTANT(Type, C, Disabled)              \
5176
    template <typename CharT>                             \
5177
    struct arg_type_constant<Type, CharT>                 \
5178
        : std::integral_constant<arg_type, arg_type::C> { \
5179
        using type = Type;                                \
5180
    };                                                    \
5181
    template <>                                           \
5182
    inline constexpr bool is_type_disabled<Type> = Disabled
5183
5184
SCN_TYPE_CONSTANT(signed char, schar_type, SCN_DISABLE_TYPE_SCHAR);
5185
SCN_TYPE_CONSTANT(short, short_type, SCN_DISABLE_TYPE_SHORT);
5186
SCN_TYPE_CONSTANT(int, int_type, SCN_DISABLE_TYPE_INT);
5187
SCN_TYPE_CONSTANT(long, long_type, SCN_DISABLE_TYPE_LONG);
5188
SCN_TYPE_CONSTANT(long long, llong_type, SCN_DISABLE_TYPE_LONG_LONG);
5189
SCN_TYPE_CONSTANT(unsigned char, uchar_type, SCN_DISABLE_TYPE_UCHAR);
5190
SCN_TYPE_CONSTANT(unsigned short, ushort_type, SCN_DISABLE_TYPE_USHORT);
5191
SCN_TYPE_CONSTANT(unsigned int, uint_type, SCN_DISABLE_TYPE_UINT);
5192
SCN_TYPE_CONSTANT(unsigned long, ulong_type, SCN_DISABLE_TYPE_ULONG);
5193
SCN_TYPE_CONSTANT(unsigned long long, ullong_type, SCN_DISABLE_TYPE_ULONG_LONG);
5194
SCN_TYPE_CONSTANT(bool, bool_type, SCN_DISABLE_TYPE_BOOL);
5195
SCN_TYPE_CONSTANT(char, narrow_character_type, SCN_DISABLE_TYPE_CHAR);
5196
SCN_TYPE_CONSTANT(wchar_t, wide_character_type, SCN_DISABLE_TYPE_CHAR);
5197
SCN_TYPE_CONSTANT(char32_t, code_point_type, SCN_DISABLE_TYPE_CHAR32);
5198
SCN_TYPE_CONSTANT(void*, pointer_type, SCN_DISABLE_TYPE_POINTER);
5199
SCN_TYPE_CONSTANT(const void*, pointer_type, SCN_DISABLE_TYPE_POINTER);
5200
SCN_TYPE_CONSTANT(float, float_type, SCN_DISABLE_TYPE_FLOAT);
5201
SCN_TYPE_CONSTANT(double, double_type, SCN_DISABLE_TYPE_DOUBLE);
5202
SCN_TYPE_CONSTANT(long double, ldouble_type, SCN_DISABLE_TYPE_LONG_DOUBLE);
5203
SCN_TYPE_CONSTANT(std::string_view,
5204
                  narrow_string_view_type,
5205
                  SCN_DISABLE_TYPE_STRING_VIEW);
5206
SCN_TYPE_CONSTANT(std::wstring_view,
5207
                  wide_string_view_type,
5208
                  SCN_DISABLE_TYPE_STRING_VIEW);
5209
SCN_TYPE_CONSTANT(std::string, narrow_string_type, SCN_DISABLE_TYPE_STRING);
5210
SCN_TYPE_CONSTANT(std::wstring, wide_string_type, SCN_DISABLE_TYPE_STRING);
5211
SCN_TYPE_CONSTANT(regex_matches, narrow_regex_matches_type, SCN_DISABLE_REGEX);
5212
SCN_TYPE_CONSTANT(wregex_matches, wide_regex_matches_type, SCN_DISABLE_REGEX);
5213
5214
#undef SCN_TYPE_CONSTANT
5215
5216
struct custom_value_type {
5217
    void* value;
5218
    auto (*scan)(void* arg, void* pctx, void* ctx) -> scan_expected<void>;
5219
};
5220
5221
struct unscannable {};
5222
struct unscannable_char : unscannable {};
5223
struct unscannable_const : unscannable {};
5224
struct unscannable_disabled : unscannable {
5225
    unscannable_disabled() = default;
5226
5227
    template <typename T>
5228
    constexpr unscannable_disabled(T&&)
5229
    {
5230
    }
5231
};
5232
5233
struct needs_context_tag {};
5234
5235
template <typename Context>
5236
struct context_tag {
5237
    using type = Context;
5238
};
5239
5240
template <typename T, typename Context>
5241
struct custom_wrapper {
5242
    using context_type = Context;
5243
    T& val;
5244
};
5245
5246
class arg_value {
5247
public:
5248
    // trivial default initialization in constexpr
5249
#if defined(__cpp_constexpr) && __cpp_constexpr >= 201907L && \
5250
    SCN_STD > SCN_STD_20
5251
    constexpr
5252
#endif
5253
10.3M
    arg_value() = default;
5254
5255
    template <typename T>
5256
10.3M
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5257
10.3M
    {
5258
10.3M
    }
scn::v4::detail::arg_value::arg_value<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5256
656k
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5257
656k
    {
5258
656k
    }
scn::v4::detail::arg_value::arg_value<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5256
298k
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5257
298k
    {
5258
298k
    }
scn::v4::detail::arg_value::arg_value<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5256
6.24M
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5257
6.24M
    {
5258
6.24M
    }
scn::v4::detail::arg_value::arg_value<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5256
3.12M
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5257
3.12M
    {
5258
3.12M
    }
Unexecuted instantiation: scn::v4::detail::arg_value::arg_value<double>(double&)
5259
5260
    template <typename T, typename Context>
5261
    explicit constexpr arg_value(custom_wrapper<T, Context> val)
5262
        : custom_value{static_cast<void*>(&val.val),
5263
                       scan_custom_arg<T, Context>}
5264
    {
5265
    }
5266
5267
    arg_value(unscannable);
5268
    arg_value(unscannable_char);
5269
    arg_value(unscannable_const);
5270
    arg_value(unscannable_disabled);
5271
5272
    union {
5273
        void* ref_value{nullptr};
5274
        custom_value_type custom_value;
5275
    };
5276
5277
private:
5278
    template <typename T, typename Context>
5279
    static scan_expected<void> scan_custom_arg(void* arg, void* pctx, void* ctx)
5280
    {
5281
        static_assert(!is_type_disabled<T>,
5282
                      "Scanning of custom types is disabled by "
5283
                      "SCN_DISABLE_TYPE_CUSTOM");
5284
        SCN_EXPECT(arg && pctx && ctx);
5285
5286
        using context_type = Context;
5287
        using parse_context_type = typename context_type::parse_context_type;
5288
        using scanner_type = typename context_type::template scanner_type<T>;
5289
5290
        auto s = scanner_type{};
5291
5292
        auto& arg_ref = *static_cast<T*>(arg);
5293
        auto& pctx_ref = *static_cast<parse_context_type*>(pctx);
5294
        auto& ctx_ref = *static_cast<context_type*>(ctx);
5295
5296
#if SCN_HAS_EXCEPTIONS
5297
        auto fmt_it = pctx_ref.begin();
5298
        try {
5299
            fmt_it = s.parse(pctx_ref);
5300
        }
5301
        catch (const detail::scan_format_string_error_base& ex) {
5302
            // scan_error takes a const char*.
5303
            // scan_format_string_error (or, actually, std::runtime_error)
5304
            // stores a reference-counted string,
5305
            // that will go out of scope here.
5306
            // We need to provide a const char* that will stay in scope.
5307
            // If scan_format_string_error was thrown with a string literal,
5308
            // use that, otherwise refer to a thread_local std::string
5309
            if (const char* m = get_internal_literal_msg(ex)) {
5310
                return unexpected_scan_error(scan_error::invalid_format_string,
5311
                                             m);
5312
            }
5313
            thread_local std::string err_msg{};
5314
            err_msg = ex.what();
5315
            return unexpected_scan_error(scan_error::invalid_format_string,
5316
                                         err_msg.c_str());
5317
        }
5318
#else
5319
        auto fmt_it = s.parse(pctx_ref);
5320
#endif
5321
        if (auto e = pctx_ref.get_error(); SCN_UNLIKELY(!e)) {
5322
            return e;
5323
        }
5324
        pctx_ref.advance_to(fmt_it);
5325
5326
        SCN_TRY(it, s.scan(arg_ref, ctx_ref));
5327
        ctx_ref.advance_to(SCN_MOVE(it));
5328
5329
        return {};
5330
    }
5331
};
5332
5333
template <typename CharT>
5334
struct arg_mapper {
5335
    using char_type = CharT;
5336
    using other_char_type =
5337
        std::conditional_t<std::is_same_v<char_type, char>, wchar_t, char>;
5338
5339
#define SCN_ARG_MAPPER(T)                                                    \
5340
    static auto map(T& val)                                                  \
5341
        -> std::conditional_t<is_type_disabled<T>, unscannable_disabled, T&> \
5342
10.3M
    {                                                                        \
5343
10.3M
        return val;                                                          \
5344
10.3M
    }
scn::v4::detail::arg_mapper<char>::map(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5342
656k
    {                                                                        \
5343
656k
        return val;                                                          \
5344
656k
    }
scn::v4::detail::arg_mapper<char>::map(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5342
298k
    {                                                                        \
5343
298k
        return val;                                                          \
5344
298k
    }
scn::v4::detail::arg_mapper<wchar_t>::map(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5342
6.24M
    {                                                                        \
5343
6.24M
        return val;                                                          \
5344
6.24M
    }
scn::v4::detail::arg_mapper<wchar_t>::map(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5342
3.12M
    {                                                                        \
5343
3.12M
        return val;                                                          \
5344
3.12M
    }
Unexecuted instantiation: scn::v4::detail::arg_mapper<char>::map(double&)
Unexecuted instantiation: scn::v4::detail::arg_mapper<wchar_t>::map(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
5345
5346
    SCN_ARG_MAPPER(signed char)
5347
    SCN_ARG_MAPPER(short)
5348
    SCN_ARG_MAPPER(int)
5349
    SCN_ARG_MAPPER(long)
5350
    SCN_ARG_MAPPER(long long)
5351
    SCN_ARG_MAPPER(unsigned char)
5352
    SCN_ARG_MAPPER(unsigned short)
5353
    SCN_ARG_MAPPER(unsigned)
5354
    SCN_ARG_MAPPER(unsigned long)
5355
    SCN_ARG_MAPPER(unsigned long long)
5356
    SCN_ARG_MAPPER(wchar_t)
5357
    SCN_ARG_MAPPER(char32_t)
5358
    SCN_ARG_MAPPER(bool)
5359
    SCN_ARG_MAPPER(void*)
5360
    SCN_ARG_MAPPER(const void*)
5361
    SCN_ARG_MAPPER(float)
5362
    SCN_ARG_MAPPER(double)
5363
    SCN_ARG_MAPPER(long double)
5364
5365
    SCN_ARG_MAPPER(std::basic_string_view<char_type>)
5366
    SCN_ARG_MAPPER(std::string)
5367
    SCN_ARG_MAPPER(std::wstring)
5368
5369
#undef SCN_ARG_MAPPER
5370
5371
    static decltype(auto) map(char& val)
5372
    {
5373
        if constexpr (std::is_same_v<char_type, char> &&
5374
                      !is_type_disabled<char_type>) {
5375
            return val;
5376
        }
5377
        else if constexpr (is_type_disabled<char_type>) {
5378
            return unscannable_disabled{val};
5379
        }
5380
        else {
5381
            SCN_UNUSED(val);
5382
            return unscannable_char{};
5383
        }
5384
    }
5385
5386
    static decltype(auto) map(basic_regex_matches<char_type>& val)
5387
    {
5388
        if constexpr (is_type_disabled<char_type>) {
5389
            return unscannable_disabled{val};
5390
        }
5391
        else {
5392
            return val;
5393
        }
5394
    }
5395
5396
    static unscannable_char map(std::basic_string_view<other_char_type>&)
5397
    {
5398
        return {};
5399
    }
5400
    static unscannable_char map(basic_regex_matches<other_char_type>&)
5401
    {
5402
        return {};
5403
    }
5404
5405
    template <typename T,
5406
              std::void_t<decltype(scanner<T, char_type>{})>* = nullptr>
5407
    static needs_context_tag map(T&)
5408
    {
5409
        return {};
5410
    }
5411
5412
    template <typename T,
5413
              typename Context,
5414
              std::void_t<decltype(scanner<T, char_type>{})>* = nullptr>
5415
    static custom_wrapper<T, Context> map(T& val, context_tag<Context>)
5416
    {
5417
        return {val};
5418
    }
5419
5420
    static unscannable map(...)
5421
    {
5422
        return {};
5423
    }
5424
};
5425
5426
template <typename T, typename CharT>
5427
using mapped_type_constant = arg_type_constant<
5428
    std::remove_reference_t<decltype(arg_mapper<CharT>().map(SCN_DECLVAL(T&)))>,
5429
    CharT>;
5430
5431
template <typename T, typename CharT>
5432
using is_scannable = std::integral_constant<
5433
    bool,
5434
    !std::is_base_of_v<
5435
        unscannable,
5436
        remove_cvref_t<decltype(arg_mapper<CharT>().map(SCN_DECLVAL(T&)))>>>;
5437
5438
constexpr std::size_t packed_arg_bits = 5;
5439
static_assert((1 << packed_arg_bits) >= static_cast<int>(arg_type::last_type));
5440
constexpr std::size_t bits_in_sz = sizeof(std::size_t) * 8;
5441
constexpr std::size_t max_packed_args = (bits_in_sz - 2) / packed_arg_bits - 1;
5442
constexpr std::size_t is_unpacked_bit = std::size_t{1} << (bits_in_sz - 1);
5443
constexpr std::size_t has_custom_types_bit = std::size_t{1} << (bits_in_sz - 2);
5444
5445
template <typename>
5446
constexpr size_t encode_types_impl()
5447
0
{
5448
0
    return 0;
5449
0
}
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<char>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<wchar_t>()
5450
template <typename CharT, typename T, typename... Others>
5451
constexpr size_t encode_types_impl()
5452
0
{
5453
0
    return static_cast<unsigned>(mapped_type_constant<T, CharT>::value) |
5454
0
           (encode_types_impl<CharT, Others...>() << packed_arg_bits);
5455
0
}
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<char, double>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
5456
5457
template <typename CharT, typename... Ts>
5458
constexpr size_t encode_types()
5459
0
{
5460
0
    if constexpr (sizeof...(Ts) < (1 << packed_arg_bits)) {
5461
0
        return sizeof...(Ts) |
5462
0
               (encode_types_impl<CharT, Ts...>() << packed_arg_bits);
5463
0
    }
5464
0
    else {
5465
0
        SCN_EXPECT(false);
5466
0
        SCN_UNREACHABLE;
5467
0
    }
5468
0
}
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<char, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<char, double>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
5469
5470
template <typename T, typename Arg>
5471
constexpr auto make_value_impl(Arg&& arg)
5472
10.3M
{
5473
10.3M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5474
10.3M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5475
5476
10.3M
    constexpr bool scannable_char =
5477
10.3M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5478
10.3M
    static_assert(scannable_char,
5479
10.3M
                  "Cannot scan an argument of an unsupported character "
5480
10.3M
                  "type (i.e. char from a wchar_t source)");
5481
5482
10.3M
    constexpr bool scannable_const =
5483
10.3M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5484
10.3M
    static_assert(scannable_const, "Cannot scan a const argument");
5485
5486
10.3M
    constexpr bool scannable_disabled =
5487
10.3M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5488
10.3M
    static_assert(scannable_disabled,
5489
10.3M
                  "Cannot scan an argument that has been disabled by "
5490
10.3M
                  "flag (SCN_DISABLE_TYPE_*)");
5491
5492
10.3M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5493
10.3M
    static_assert(
5494
10.3M
        scannable,
5495
10.3M
        "Cannot scan an argument. To make a type T scannable, provide "
5496
10.3M
        "a scn::scanner<T, CharT> specialization.");
5497
5498
10.3M
    return arg_value{arg};
5499
10.3M
}
auto scn::v4::detail::make_value_impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5472
656k
{
5473
656k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5474
656k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5475
5476
656k
    constexpr bool scannable_char =
5477
656k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5478
656k
    static_assert(scannable_char,
5479
656k
                  "Cannot scan an argument of an unsupported character "
5480
656k
                  "type (i.e. char from a wchar_t source)");
5481
5482
656k
    constexpr bool scannable_const =
5483
656k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5484
656k
    static_assert(scannable_const, "Cannot scan a const argument");
5485
5486
656k
    constexpr bool scannable_disabled =
5487
656k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5488
656k
    static_assert(scannable_disabled,
5489
656k
                  "Cannot scan an argument that has been disabled by "
5490
656k
                  "flag (SCN_DISABLE_TYPE_*)");
5491
5492
656k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5493
656k
    static_assert(
5494
656k
        scannable,
5495
656k
        "Cannot scan an argument. To make a type T scannable, provide "
5496
656k
        "a scn::scanner<T, CharT> specialization.");
5497
5498
656k
    return arg_value{arg};
5499
656k
}
auto scn::v4::detail::make_value_impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5472
298k
{
5473
298k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5474
298k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5475
5476
298k
    constexpr bool scannable_char =
5477
298k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5478
298k
    static_assert(scannable_char,
5479
298k
                  "Cannot scan an argument of an unsupported character "
5480
298k
                  "type (i.e. char from a wchar_t source)");
5481
5482
298k
    constexpr bool scannable_const =
5483
298k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5484
298k
    static_assert(scannable_const, "Cannot scan a const argument");
5485
5486
298k
    constexpr bool scannable_disabled =
5487
298k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5488
298k
    static_assert(scannable_disabled,
5489
298k
                  "Cannot scan an argument that has been disabled by "
5490
298k
                  "flag (SCN_DISABLE_TYPE_*)");
5491
5492
298k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5493
298k
    static_assert(
5494
298k
        scannable,
5495
298k
        "Cannot scan an argument. To make a type T scannable, provide "
5496
298k
        "a scn::scanner<T, CharT> specialization.");
5497
5498
298k
    return arg_value{arg};
5499
298k
}
auto scn::v4::detail::make_value_impl<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&>(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5472
6.24M
{
5473
6.24M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5474
6.24M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5475
5476
6.24M
    constexpr bool scannable_char =
5477
6.24M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5478
6.24M
    static_assert(scannable_char,
5479
6.24M
                  "Cannot scan an argument of an unsupported character "
5480
6.24M
                  "type (i.e. char from a wchar_t source)");
5481
5482
6.24M
    constexpr bool scannable_const =
5483
6.24M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5484
6.24M
    static_assert(scannable_const, "Cannot scan a const argument");
5485
5486
6.24M
    constexpr bool scannable_disabled =
5487
6.24M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5488
6.24M
    static_assert(scannable_disabled,
5489
6.24M
                  "Cannot scan an argument that has been disabled by "
5490
6.24M
                  "flag (SCN_DISABLE_TYPE_*)");
5491
5492
6.24M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5493
6.24M
    static_assert(
5494
6.24M
        scannable,
5495
6.24M
        "Cannot scan an argument. To make a type T scannable, provide "
5496
6.24M
        "a scn::scanner<T, CharT> specialization.");
5497
5498
6.24M
    return arg_value{arg};
5499
6.24M
}
auto scn::v4::detail::make_value_impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5472
3.12M
{
5473
3.12M
    using arg_nocvref_t = remove_cvref_t<Arg>;
5474
3.12M
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5475
5476
3.12M
    constexpr bool scannable_char =
5477
3.12M
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5478
3.12M
    static_assert(scannable_char,
5479
3.12M
                  "Cannot scan an argument of an unsupported character "
5480
3.12M
                  "type (i.e. char from a wchar_t source)");
5481
5482
3.12M
    constexpr bool scannable_const =
5483
3.12M
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5484
3.12M
    static_assert(scannable_const, "Cannot scan a const argument");
5485
5486
3.12M
    constexpr bool scannable_disabled =
5487
3.12M
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5488
3.12M
    static_assert(scannable_disabled,
5489
3.12M
                  "Cannot scan an argument that has been disabled by "
5490
3.12M
                  "flag (SCN_DISABLE_TYPE_*)");
5491
5492
3.12M
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5493
3.12M
    static_assert(
5494
3.12M
        scannable,
5495
3.12M
        "Cannot scan an argument. To make a type T scannable, provide "
5496
3.12M
        "a scn::scanner<T, CharT> specialization.");
5497
5498
3.12M
    return arg_value{arg};
5499
3.12M
}
Unexecuted instantiation: auto scn::v4::detail::make_value_impl<double, double&>(double&)
5500
5501
template <typename Context, typename T>
5502
constexpr auto make_value(T& value)
5503
10.3M
{
5504
10.3M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5505
5506
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5507
10.3M
                                  needs_context_tag>) {
5508
10.3M
        return make_value_impl<T>(SCN_FWD(arg));
5509
    }
5510
    else {
5511
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5512
            value, context_tag<Context>{}));
5513
    }
5514
10.3M
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5503
656k
{
5504
656k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5505
5506
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5507
656k
                                  needs_context_tag>) {
5508
656k
        return make_value_impl<T>(SCN_FWD(arg));
5509
    }
5510
    else {
5511
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5512
            value, context_tag<Context>{}));
5513
    }
5514
656k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5503
298k
{
5504
298k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5505
5506
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5507
298k
                                  needs_context_tag>) {
5508
298k
        return make_value_impl<T>(SCN_FWD(arg));
5509
    }
5510
    else {
5511
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5512
            value, context_tag<Context>{}));
5513
    }
5514
298k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5503
6.24M
{
5504
6.24M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5505
5506
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5507
6.24M
                                  needs_context_tag>) {
5508
6.24M
        return make_value_impl<T>(SCN_FWD(arg));
5509
    }
5510
    else {
5511
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5512
            value, context_tag<Context>{}));
5513
    }
5514
6.24M
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5503
3.12M
{
5504
3.12M
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5505
5506
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5507
3.12M
                                  needs_context_tag>) {
5508
3.12M
        return make_value_impl<T>(SCN_FWD(arg));
5509
    }
5510
    else {
5511
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5512
            value, context_tag<Context>{}));
5513
    }
5514
3.12M
}
Unexecuted instantiation: auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, double>(double&)
Unexecuted instantiation: auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
5515
5516
template <typename... Args>
5517
constexpr bool check_scan_arg_types()
5518
10.3M
{
5519
10.3M
    constexpr bool default_constructible_constraint =
5520
10.3M
        std::conjunction_v<std::is_default_constructible<Args>...>;
5521
10.3M
    static_assert(default_constructible_constraint,
5522
10.3M
                  "Scan argument types must be default constructible");
5523
5524
10.3M
    constexpr bool destructible_constraint =
5525
10.3M
        std::conjunction_v<std::is_destructible<Args>...>;
5526
10.3M
    static_assert(destructible_constraint,
5527
10.3M
                  "Scan argument types must be Destructible");
5528
5529
10.3M
    constexpr bool non_reference_constraint =
5530
10.3M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5531
10.3M
    static_assert(non_reference_constraint,
5532
10.3M
                  "Scan argument types must not be references");
5533
5534
10.3M
    constexpr bool movable_constraint =
5535
10.3M
        std::conjunction_v<std::is_move_constructible<Args>...>;
5536
10.3M
    static_assert(movable_constraint,
5537
10.3M
                  "Scan argument types must be move constructible");
5538
5539
10.3M
    return default_constructible_constraint && destructible_constraint &&
5540
10.3M
           non_reference_constraint && movable_constraint;
5541
10.3M
}
bool scn::v4::detail::check_scan_arg_types<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
5518
656k
{
5519
656k
    constexpr bool default_constructible_constraint =
5520
656k
        std::conjunction_v<std::is_default_constructible<Args>...>;
5521
656k
    static_assert(default_constructible_constraint,
5522
656k
                  "Scan argument types must be default constructible");
5523
5524
656k
    constexpr bool destructible_constraint =
5525
656k
        std::conjunction_v<std::is_destructible<Args>...>;
5526
656k
    static_assert(destructible_constraint,
5527
656k
                  "Scan argument types must be Destructible");
5528
5529
656k
    constexpr bool non_reference_constraint =
5530
656k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5531
656k
    static_assert(non_reference_constraint,
5532
656k
                  "Scan argument types must not be references");
5533
5534
656k
    constexpr bool movable_constraint =
5535
656k
        std::conjunction_v<std::is_move_constructible<Args>...>;
5536
656k
    static_assert(movable_constraint,
5537
656k
                  "Scan argument types must be move constructible");
5538
5539
656k
    return default_constructible_constraint && destructible_constraint &&
5540
656k
           non_reference_constraint && movable_constraint;
5541
656k
}
bool scn::v4::detail::check_scan_arg_types<std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Line
Count
Source
5518
298k
{
5519
298k
    constexpr bool default_constructible_constraint =
5520
298k
        std::conjunction_v<std::is_default_constructible<Args>...>;
5521
298k
    static_assert(default_constructible_constraint,
5522
298k
                  "Scan argument types must be default constructible");
5523
5524
298k
    constexpr bool destructible_constraint =
5525
298k
        std::conjunction_v<std::is_destructible<Args>...>;
5526
298k
    static_assert(destructible_constraint,
5527
298k
                  "Scan argument types must be Destructible");
5528
5529
298k
    constexpr bool non_reference_constraint =
5530
298k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5531
298k
    static_assert(non_reference_constraint,
5532
298k
                  "Scan argument types must not be references");
5533
5534
298k
    constexpr bool movable_constraint =
5535
298k
        std::conjunction_v<std::is_move_constructible<Args>...>;
5536
298k
    static_assert(movable_constraint,
5537
298k
                  "Scan argument types must be move constructible");
5538
5539
298k
    return default_constructible_constraint && destructible_constraint &&
5540
298k
           non_reference_constraint && movable_constraint;
5541
298k
}
bool scn::v4::detail::check_scan_arg_types<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Line
Count
Source
5518
6.24M
{
5519
6.24M
    constexpr bool default_constructible_constraint =
5520
6.24M
        std::conjunction_v<std::is_default_constructible<Args>...>;
5521
6.24M
    static_assert(default_constructible_constraint,
5522
6.24M
                  "Scan argument types must be default constructible");
5523
5524
6.24M
    constexpr bool destructible_constraint =
5525
6.24M
        std::conjunction_v<std::is_destructible<Args>...>;
5526
6.24M
    static_assert(destructible_constraint,
5527
6.24M
                  "Scan argument types must be Destructible");
5528
5529
6.24M
    constexpr bool non_reference_constraint =
5530
6.24M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5531
6.24M
    static_assert(non_reference_constraint,
5532
6.24M
                  "Scan argument types must not be references");
5533
5534
6.24M
    constexpr bool movable_constraint =
5535
6.24M
        std::conjunction_v<std::is_move_constructible<Args>...>;
5536
6.24M
    static_assert(movable_constraint,
5537
6.24M
                  "Scan argument types must be move constructible");
5538
5539
6.24M
    return default_constructible_constraint && destructible_constraint &&
5540
6.24M
           non_reference_constraint && movable_constraint;
5541
6.24M
}
bool scn::v4::detail::check_scan_arg_types<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Line
Count
Source
5518
3.12M
{
5519
3.12M
    constexpr bool default_constructible_constraint =
5520
3.12M
        std::conjunction_v<std::is_default_constructible<Args>...>;
5521
3.12M
    static_assert(default_constructible_constraint,
5522
3.12M
                  "Scan argument types must be default constructible");
5523
5524
3.12M
    constexpr bool destructible_constraint =
5525
3.12M
        std::conjunction_v<std::is_destructible<Args>...>;
5526
3.12M
    static_assert(destructible_constraint,
5527
3.12M
                  "Scan argument types must be Destructible");
5528
5529
3.12M
    constexpr bool non_reference_constraint =
5530
3.12M
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5531
3.12M
    static_assert(non_reference_constraint,
5532
3.12M
                  "Scan argument types must not be references");
5533
5534
3.12M
    constexpr bool movable_constraint =
5535
3.12M
        std::conjunction_v<std::is_move_constructible<Args>...>;
5536
3.12M
    static_assert(movable_constraint,
5537
3.12M
                  "Scan argument types must be move constructible");
5538
5539
3.12M
    return default_constructible_constraint && destructible_constraint &&
5540
3.12M
           non_reference_constraint && movable_constraint;
5541
3.12M
}
Unexecuted instantiation: bool scn::v4::detail::check_scan_arg_types<double>()
5542
5543
enum class scan_arg_store_kind {
5544
    // only built-in types (no custom types), packed
5545
    builtin,
5546
5547
    packed,
5548
    unpacked
5549
};
5550
5551
template <typename Context, typename T>
5552
constexpr basic_scan_arg<Context> make_arg(T& value)
5553
2.02M
{
5554
2.02M
    check_scan_arg_types<T>();
5555
5556
2.02M
    basic_scan_arg<Context> arg;
5557
2.02M
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5558
2.02M
    arg.m_value = make_value<Context>(value);
5559
2.02M
    return arg;
5560
2.02M
}
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > scn::v4::detail::make_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5553
122k
{
5554
122k
    check_scan_arg_types<T>();
5555
5556
122k
    basic_scan_arg<Context> arg;
5557
122k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5558
122k
    arg.m_value = make_value<Context>(value);
5559
122k
    return arg;
5560
122k
}
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > scn::v4::detail::make_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5553
55.4k
{
5554
55.4k
    check_scan_arg_types<T>();
5555
5556
55.4k
    basic_scan_arg<Context> arg;
5557
55.4k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5558
55.4k
    arg.m_value = make_value<Context>(value);
5559
55.4k
    return arg;
5560
55.4k
}
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > scn::v4::detail::make_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5553
1.23M
{
5554
1.23M
    check_scan_arg_types<T>();
5555
5556
1.23M
    basic_scan_arg<Context> arg;
5557
1.23M
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5558
1.23M
    arg.m_value = make_value<Context>(value);
5559
1.23M
    return arg;
5560
1.23M
}
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > scn::v4::detail::make_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5553
616k
{
5554
616k
    check_scan_arg_types<T>();
5555
5556
616k
    basic_scan_arg<Context> arg;
5557
616k
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
5558
616k
    arg.m_value = make_value<Context>(value);
5559
616k
    return arg;
5560
616k
}
5561
5562
template <scan_arg_store_kind Kind,
5563
          typename Context,
5564
          arg_type,
5565
          typename T,
5566
          typename = std::enable_if_t<Kind == scan_arg_store_kind::builtin>>
5567
constexpr void* make_arg(T& value)
5568
8.29M
{
5569
8.29M
    return make_value<Context>(value).ref_value;
5570
8.29M
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, (scn::v4::detail::arg_type)21, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5568
533k
{
5569
533k
    return make_value<Context>(value).ref_value;
5570
533k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, (scn::v4::detail::arg_type)19, std::__1::basic_string_view<char, std::__1::char_traits<char> >, void>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5568
243k
{
5569
243k
    return make_value<Context>(value).ref_value;
5570
243k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, (scn::v4::detail::arg_type)22, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, void>(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5568
5.00M
{
5569
5.00M
    return make_value<Context>(value).ref_value;
5570
5.00M
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, (scn::v4::detail::arg_type)20, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, void>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5568
2.50M
{
5569
2.50M
    return make_value<Context>(value).ref_value;
5570
2.50M
}
Unexecuted instantiation: void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, (scn::v4::detail::arg_type)17, double, void>(double&)
Unexecuted instantiation: void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, (scn::v4::detail::arg_type)21, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
5571
template <scan_arg_store_kind Kind,
5572
          typename Context,
5573
          arg_type,
5574
          typename T,
5575
          typename = std::enable_if_t<Kind == scan_arg_store_kind::packed>>
5576
constexpr arg_value make_arg(T& value)
5577
{
5578
    return make_value<Context>(value);
5579
}
5580
template <scan_arg_store_kind Kind,
5581
          typename Context,
5582
          arg_type,
5583
          typename T,
5584
          typename = std::enable_if_t<Kind == scan_arg_store_kind::unpacked>>
5585
constexpr basic_scan_arg<Context> make_arg(T&& value)
5586
{
5587
    return make_arg<Context>(SCN_FWD(value));
5588
}
5589
5590
template <typename Context>
5591
constexpr arg_value& get_arg_value(basic_scan_arg<Context>& arg);
5592
template <typename Context>
5593
constexpr arg_value get_arg_value(const basic_scan_arg<Context>& arg);
5594
5595
template <typename Context>
5596
constexpr arg_type& get_arg_type(basic_scan_arg<Context>& arg);
5597
template <typename Context>
5598
constexpr arg_type get_arg_type(const basic_scan_arg<Context>& arg);
5599
5600
template <typename Visitor, typename Context>
5601
constexpr decltype(auto) visit_impl(Visitor&& vis,
5602
                                    basic_scan_arg<Context>& arg);
5603
}  // namespace detail
5604
5605
/**
5606
 * Type-erased scanning argument.
5607
 *
5608
 * Contains a pointer to the value contained in a `scan_arg_store`.
5609
 */
5610
template <typename Context>
5611
class basic_scan_arg {
5612
public:
5613
    /**
5614
     * Enables scanning of a user-defined type.
5615
     *
5616
     * Contains a pointer to the value contained in a `scan_arg_store`, and
5617
     * a callback for parsing the format string, and scanning the value.
5618
     *
5619
     * \see scn::visit_scan_arg
5620
     */
5621
    class handle {
5622
    public:
5623
        /**
5624
         * Parse the format string in `parse_ctx`, and scan the value from
5625
         * `ctx`.
5626
         *
5627
         * \return Any error returned by the scanner
5628
         */
5629
        scan_expected<void> scan(
5630
            typename Context::parse_context_type& parse_ctx,
5631
            Context& ctx) const
5632
0
        {
5633
0
            return m_custom.scan(m_custom.value, &parse_ctx, &ctx);
5634
0
        }
Unexecuted instantiation: scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::handle::scan(scn::v4::basic_scan_parse_context<char>&, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>&) const
Unexecuted instantiation: scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::handle::scan(scn::v4::basic_scan_parse_context<wchar_t>&, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>&) const
5635
5636
    private:
5637
0
        explicit handle(detail::custom_value_type custom) : m_custom(custom) {}
Unexecuted instantiation: scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::handle::handle(scn::v4::detail::custom_value_type)
Unexecuted instantiation: scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::handle::handle(scn::v4::detail::custom_value_type)
5638
5639
        template <typename Visitor, typename C>
5640
        friend constexpr decltype(auto) detail::visit_impl(
5641
            Visitor&& vis,
5642
            basic_scan_arg<C>& arg);
5643
5644
        detail::custom_value_type m_custom;
5645
    };
5646
5647
    /// Construct a `basic_scan_arg` which doesn't contain an argument.
5648
10.3M
    constexpr basic_scan_arg() = default;
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_arg()
Line
Count
Source
5648
954k
    constexpr basic_scan_arg() = default;
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_arg()
Line
Count
Source
5648
9.36M
    constexpr basic_scan_arg() = default;
5649
5650
    /**
5651
     * @return `true` if `*this` contains an argument
5652
     */
5653
    constexpr explicit operator bool() const noexcept
5654
14.4M
    {
5655
14.4M
        return m_type != detail::arg_type::none_type;
5656
14.4M
    }
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::operator bool() const
Line
Count
Source
5654
1.34M
    {
5655
1.34M
        return m_type != detail::arg_type::none_type;
5656
1.34M
    }
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::operator bool() const
Line
Count
Source
5654
13.1M
    {
5655
13.1M
        return m_type != detail::arg_type::none_type;
5656
13.1M
    }
5657
5658
    /**
5659
     * Visit a `basic_scan_arg` with `Visitor`.
5660
     * Calls `vis` with the value stored in `*this`.
5661
     * If no value is contained in `*this`, calls `vis` with a `monostate`.
5662
     *
5663
     * \return `vis(x)`, where `x` is either a reference to the value contained
5664
     * in `*this`, or a `basic_scan_arg::handle`.
5665
     */
5666
    template <typename Visitor>
5667
    constexpr decltype(auto) visit(Visitor&& vis);
5668
5669
    template <typename R, typename Visitor>
5670
    constexpr R visit(Visitor&& vis);
5671
5672
private:
5673
    template <typename ContextType, typename T>
5674
    friend constexpr basic_scan_arg<ContextType> detail::make_arg(T& value);
5675
5676
    template <typename C>
5677
    friend constexpr detail::arg_type& detail::get_arg_type(
5678
        basic_scan_arg<C>& arg);
5679
    template <typename C>
5680
    friend constexpr detail::arg_type detail::get_arg_type(
5681
        const basic_scan_arg<C>& arg);
5682
5683
    template <typename C>
5684
    friend constexpr detail::arg_value& detail::get_arg_value(
5685
        basic_scan_arg<C>& arg);
5686
    template <typename C>
5687
    friend constexpr detail::arg_value detail::get_arg_value(
5688
        const basic_scan_arg<C>& arg);
5689
5690
    friend class basic_scan_args<Context>;
5691
5692
    detail::arg_value m_value{};
5693
    detail::arg_type m_type{detail::arg_type::none_type};
5694
};
5695
5696
namespace detail {
5697
template <typename Context>
5698
constexpr arg_type& get_arg_type(basic_scan_arg<Context>& arg)
5699
18.7M
{
5700
18.7M
    return arg.m_type;
5701
18.7M
}
scn::v4::detail::arg_type& scn::v4::detail::get_arg_type<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Line
Count
Source
5699
1.76M
{
5700
1.76M
    return arg.m_type;
5701
1.76M
}
scn::v4::detail::arg_type& scn::v4::detail::get_arg_type<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Line
Count
Source
5699
16.9M
{
5700
16.9M
    return arg.m_type;
5701
16.9M
}
5702
5703
template <typename Context>
5704
constexpr arg_type get_arg_type(const basic_scan_arg<Context>& arg)
5705
{
5706
    return arg.m_type;
5707
}
5708
5709
template <typename Context>
5710
constexpr arg_value& get_arg_value(basic_scan_arg<Context>& arg)
5711
10.2M
{
5712
10.2M
    return arg.m_value;
5713
10.2M
}
scn::v4::detail::arg_value& scn::v4::detail::get_arg_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Line
Count
Source
5711
926k
{
5712
926k
    return arg.m_value;
5713
926k
}
scn::v4::detail::arg_value& scn::v4::detail::get_arg_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Line
Count
Source
5711
9.30M
{
5712
9.30M
    return arg.m_value;
5713
9.30M
}
5714
5715
template <typename Context>
5716
constexpr arg_value get_arg_value(const basic_scan_arg<Context>& arg)
5717
{
5718
    return arg.m_value;
5719
}
5720
5721
template <typename CharT>
5722
constexpr bool all_types_builtin()
5723
0
{
5724
0
    return true;
5725
0
}
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<char>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<wchar_t>()
5726
template <typename CharT, typename T, typename... Args>
5727
constexpr bool all_types_builtin()
5728
0
{
5729
0
    return mapped_type_constant<T, CharT>::value != arg_type::custom_type &&
5730
0
           all_types_builtin<CharT, Args...>();
5731
0
}
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<char, double>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
5732
5733
template <typename CharT, typename... Args>
5734
constexpr scan_arg_store_kind determine_arg_store_kind()
5735
0
{
5736
0
    if (sizeof...(Args) > max_packed_args) {
5737
0
        return scan_arg_store_kind::unpacked;
5738
0
    }
5739
0
#if !(SCN_CLANG && SCN_APPLE)
5740
0
    // This doesn't work on Apple Clang. I don't know why
5741
0
    if (all_types_builtin<CharT, Args...>()) {
5742
0
        return scan_arg_store_kind::builtin;
5743
0
    }
5744
0
#endif
5745
0
    return scan_arg_store_kind::packed;
5746
0
}
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<char, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<char, double>()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
5747
5748
template <scan_arg_store_kind Kind, typename CharT, typename... Args>
5749
constexpr size_t compute_arg_store_desc()
5750
0
{
5751
0
    if constexpr (Kind == scan_arg_store_kind::builtin) {
5752
0
        return encode_types<CharT, Args...>();
5753
0
    }
5754
0
    else if constexpr (Kind == scan_arg_store_kind::packed) {
5755
0
        return encode_types<CharT, Args...>() | has_custom_types_bit;
5756
0
    }
5757
0
    else {
5758
0
        return sizeof...(Args) | is_unpacked_bit;
5759
0
    }
5760
0
}
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, char, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, char, double>()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
5761
5762
template <typename Context, typename... Args>
5763
class scan_arg_store {
5764
public:
5765
    static constexpr scan_arg_store_kind kind =
5766
        determine_arg_store_kind<typename Context::char_type, Args...>();
5767
    static constexpr size_t desc =
5768
        compute_arg_store_desc<kind, typename Context::char_type, Args...>();
5769
5770
    using argptr_type = std::conditional_t<
5771
        kind == scan_arg_store_kind::builtin,
5772
        void*,
5773
        std::conditional_t<kind == scan_arg_store_kind::packed,
5774
                           arg_value,
5775
                           basic_scan_arg<Context>>>;
5776
    using argptrs_type = std::array<argptr_type, sizeof...(Args)>;
5777
5778
    constexpr explicit scan_arg_store(std::tuple<Args...>& args)
5779
8.29M
        : args(std::apply(make_argptrs<Args...>, args))
5780
8.29M
    {
5781
8.29M
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_arg_store(std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
Line
Count
Source
5779
533k
        : args(std::apply(make_argptrs<Args...>, args))
5780
533k
    {
5781
533k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::scan_arg_store(std::__1::tuple<std::__1::basic_string_view<char, std::__1::char_traits<char> > >&)
Line
Count
Source
5779
243k
        : args(std::apply(make_argptrs<Args...>, args))
5780
243k
    {
5781
243k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_arg_store(std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&)
Line
Count
Source
5779
5.00M
        : args(std::apply(make_argptrs<Args...>, args))
5780
5.00M
    {
5781
5.00M
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::scan_arg_store(std::__1::tuple<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&)
Line
Count
Source
5779
2.50M
        : args(std::apply(make_argptrs<Args...>, args))
5780
2.50M
    {
5781
2.50M
    }
Unexecuted instantiation: scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, double>::scan_arg_store(std::__1::tuple<double>&)
Unexecuted instantiation: scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_arg_store(std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
5782
5783
    argptrs_type args;
5784
5785
private:
5786
    template <typename... A>
5787
    static constexpr argptrs_type make_argptrs(A&... args)
5788
8.29M
    {
5789
8.29M
        return {detail::make_arg<
5790
8.29M
            kind, Context,
5791
8.29M
            mapped_type_constant<remove_cvref_t<A>,
5792
8.29M
                                 typename Context::char_type>::value>(args)...};
5793
8.29M
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::make_argptrs<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5788
533k
    {
5789
533k
        return {detail::make_arg<
5790
533k
            kind, Context,
5791
533k
            mapped_type_constant<remove_cvref_t<A>,
5792
533k
                                 typename Context::char_type>::value>(args)...};
5793
533k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::make_argptrs<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5788
243k
    {
5789
243k
        return {detail::make_arg<
5790
243k
            kind, Context,
5791
243k
            mapped_type_constant<remove_cvref_t<A>,
5792
243k
                                 typename Context::char_type>::value>(args)...};
5793
243k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::make_argptrs<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5788
5.00M
    {
5789
5.00M
        return {detail::make_arg<
5790
5.00M
            kind, Context,
5791
5.00M
            mapped_type_constant<remove_cvref_t<A>,
5792
5.00M
                                 typename Context::char_type>::value>(args)...};
5793
5.00M
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::make_argptrs<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5788
2.50M
    {
5789
2.50M
        return {detail::make_arg<
5790
2.50M
            kind, Context,
5791
2.50M
            mapped_type_constant<remove_cvref_t<A>,
5792
2.50M
                                 typename Context::char_type>::value>(args)...};
5793
2.50M
    }
Unexecuted instantiation: std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, double>::make_argptrs<double>(double&)
Unexecuted instantiation: std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::make_argptrs<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
5794
};
5795
5796
}  // namespace detail
5797
5798
/**
5799
 * Creates a type-erased argument store over the arguments in `values`.
5800
 */
5801
template <typename Context = scan_context, typename... Args>
5802
constexpr auto make_scan_args(std::tuple<Args...>& values)
5803
8.29M
{
5804
8.29M
    detail::check_scan_arg_types<Args...>();
5805
8.29M
    return detail::scan_arg_store<Context, Args...>(values);
5806
8.29M
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
Line
Count
Source
5803
533k
{
5804
533k
    detail::check_scan_arg_types<Args...>();
5805
533k
    return detail::scan_arg_store<Context, Args...>(values);
5806
533k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::tuple<std::__1::basic_string_view<char, std::__1::char_traits<char> > >&)
Line
Count
Source
5803
243k
{
5804
243k
    detail::check_scan_arg_types<Args...>();
5805
243k
    return detail::scan_arg_store<Context, Args...>(values);
5806
243k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&)
Line
Count
Source
5803
5.00M
{
5804
5.00M
    detail::check_scan_arg_types<Args...>();
5805
5.00M
    return detail::scan_arg_store<Context, Args...>(values);
5806
5.00M
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::tuple<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&)
Line
Count
Source
5803
2.50M
{
5804
2.50M
    detail::check_scan_arg_types<Args...>();
5805
2.50M
    return detail::scan_arg_store<Context, Args...>(values);
5806
2.50M
}
Unexecuted instantiation: auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, double>(std::__1::tuple<double>&)
Unexecuted instantiation: auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
5807
5808
template <typename... Args>
5809
constexpr auto make_wscan_args(std::tuple<Args...>& values)
5810
{
5811
    detail::check_scan_arg_types<Args...>();
5812
    return detail::scan_arg_store<wscan_context, Args...>(values);
5813
}
5814
5815
/**
5816
 * A view over a collection of scanning arguments (`scan_arg_store`).
5817
 *
5818
 * Passed to `scn::vscan`, where it's automatically constructed from a
5819
 * `scan_arg_store`.
5820
 */
5821
template <typename Context>
5822
class basic_scan_args {
5823
public:
5824
2.02M
    constexpr basic_scan_args() = default;
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args()
Line
Count
Source
5824
178k
    constexpr basic_scan_args() = default;
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args()
Line
Count
Source
5824
1.84M
    constexpr basic_scan_args() = default;
5825
5826
    template <typename... Args>
5827
    SCN_IMPLICIT constexpr basic_scan_args(
5828
        const detail::scan_arg_store<Context, Args...>& store)
5829
8.29M
        : basic_scan_args(store.desc, store.args.data())
5830
8.29M
    {
5831
8.29M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&)
Line
Count
Source
5829
533k
        : basic_scan_args(store.desc, store.args.data())
5830
533k
    {
5831
533k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > > const&)
Line
Count
Source
5829
243k
        : basic_scan_args(store.desc, store.args.data())
5830
243k
    {
5831
243k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > const&)
Line
Count
Source
5829
5.00M
        : basic_scan_args(store.desc, store.args.data())
5830
5.00M
    {
5831
5.00M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > const&)
Line
Count
Source
5829
2.50M
        : basic_scan_args(store.desc, store.args.data())
5830
2.50M
    {
5831
2.50M
    }
Unexecuted instantiation: scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args<double>(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, double> const&)
Unexecuted instantiation: scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&)
5832
5833
    /**
5834
     * \return `basic_scan_arg` at index `id`. Empty `basic_scan_arg` if
5835
     * there's no argument at index `id`.
5836
     */
5837
    SCN_NODISCARD constexpr basic_scan_arg<Context> get(std::size_t id) const
5838
8.29M
    {
5839
8.29M
        if (SCN_UNLIKELY(!is_packed())) {
5840
0
            if (SCN_LIKELY(id < max_size())) {
5841
0
                return m_args[id];
5842
0
            }
5843
0
            return {};
5844
0
        }
5845
5846
8.29M
        if (SCN_UNLIKELY(id >= detail::max_packed_args)) {
5847
0
            return {};
5848
0
        }
5849
5850
8.29M
        const auto t = type(id);
5851
8.29M
        if (SCN_UNLIKELY(t == detail::arg_type::none_type)) {
5852
0
            return {};
5853
0
        }
5854
5855
8.29M
        basic_scan_arg<Context> arg;
5856
8.29M
        arg.m_type = t;
5857
8.29M
        if (is_only_builtin()) {
5858
8.29M
            arg.m_value.ref_value = m_builtin_values[id];
5859
8.29M
        }
5860
0
        else {
5861
0
            arg.m_value = m_values[id];
5862
0
        }
5863
8.29M
        return arg;
5864
8.29M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::get(unsigned long) const
Line
Count
Source
5838
776k
    {
5839
776k
        if (SCN_UNLIKELY(!is_packed())) {
5840
0
            if (SCN_LIKELY(id < max_size())) {
5841
0
                return m_args[id];
5842
0
            }
5843
0
            return {};
5844
0
        }
5845
5846
776k
        if (SCN_UNLIKELY(id >= detail::max_packed_args)) {
5847
0
            return {};
5848
0
        }
5849
5850
776k
        const auto t = type(id);
5851
776k
        if (SCN_UNLIKELY(t == detail::arg_type::none_type)) {
5852
0
            return {};
5853
0
        }
5854
5855
776k
        basic_scan_arg<Context> arg;
5856
776k
        arg.m_type = t;
5857
776k
        if (is_only_builtin()) {
5858
776k
            arg.m_value.ref_value = m_builtin_values[id];
5859
776k
        }
5860
0
        else {
5861
0
            arg.m_value = m_values[id];
5862
0
        }
5863
776k
        return arg;
5864
776k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::get(unsigned long) const
Line
Count
Source
5838
7.51M
    {
5839
7.51M
        if (SCN_UNLIKELY(!is_packed())) {
5840
0
            if (SCN_LIKELY(id < max_size())) {
5841
0
                return m_args[id];
5842
0
            }
5843
0
            return {};
5844
0
        }
5845
5846
7.51M
        if (SCN_UNLIKELY(id >= detail::max_packed_args)) {
5847
0
            return {};
5848
0
        }
5849
5850
7.51M
        const auto t = type(id);
5851
7.51M
        if (SCN_UNLIKELY(t == detail::arg_type::none_type)) {
5852
0
            return {};
5853
0
        }
5854
5855
7.51M
        basic_scan_arg<Context> arg;
5856
7.51M
        arg.m_type = t;
5857
7.51M
        if (is_only_builtin()) {
5858
7.51M
            arg.m_value.ref_value = m_builtin_values[id];
5859
7.51M
        }
5860
0
        else {
5861
0
            arg.m_value = m_values[id];
5862
0
        }
5863
7.51M
        return arg;
5864
7.51M
    }
5865
5866
    /**
5867
     * \return Number of arguments in `*this`.
5868
     */
5869
    SCN_NODISCARD constexpr std::size_t size() const
5870
8.29M
    {
5871
8.29M
        if (SCN_UNLIKELY(!is_packed())) {
5872
0
            return max_size();
5873
0
        }
5874
5875
8.29M
        return static_cast<std::size_t>(m_desc &
5876
8.29M
                                        ((1 << detail::packed_arg_bits) - 1));
5877
8.29M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::size() const
Line
Count
Source
5870
776k
    {
5871
776k
        if (SCN_UNLIKELY(!is_packed())) {
5872
0
            return max_size();
5873
0
        }
5874
5875
776k
        return static_cast<std::size_t>(m_desc &
5876
776k
                                        ((1 << detail::packed_arg_bits) - 1));
5877
776k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::size() const
Line
Count
Source
5870
7.51M
    {
5871
7.51M
        if (SCN_UNLIKELY(!is_packed())) {
5872
0
            return max_size();
5873
0
        }
5874
5875
7.51M
        return static_cast<std::size_t>(m_desc &
5876
7.51M
                                        ((1 << detail::packed_arg_bits) - 1));
5877
7.51M
    }
5878
5879
private:
5880
    constexpr explicit basic_scan_args(size_t desc, void* const* data)
5881
8.29M
        : m_desc(desc), m_builtin_values(data)
5882
8.29M
    {
5883
8.29M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args(unsigned long, void* const*)
Line
Count
Source
5881
776k
        : m_desc(desc), m_builtin_values(data)
5882
776k
    {
5883
776k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args(unsigned long, void* const*)
Line
Count
Source
5881
7.51M
        : m_desc(desc), m_builtin_values(data)
5882
7.51M
    {
5883
7.51M
    }
5884
    constexpr explicit basic_scan_args(size_t desc,
5885
                                       const detail::arg_value* data)
5886
        : m_desc(desc), m_values(data)
5887
    {
5888
    }
5889
    constexpr explicit basic_scan_args(size_t desc,
5890
                                       const basic_scan_arg<Context>* data)
5891
        : m_desc(desc), m_args(data)
5892
    {
5893
    }
5894
5895
    SCN_NODISCARD constexpr bool is_packed() const
5896
16.5M
    {
5897
16.5M
        return (m_desc & detail::is_unpacked_bit) == 0;
5898
16.5M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::is_packed() const
Line
Count
Source
5896
1.55M
    {
5897
1.55M
        return (m_desc & detail::is_unpacked_bit) == 0;
5898
1.55M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::is_packed() const
Line
Count
Source
5896
15.0M
    {
5897
15.0M
        return (m_desc & detail::is_unpacked_bit) == 0;
5898
15.0M
    }
5899
    SCN_NODISCARD constexpr bool is_only_builtin() const
5900
8.29M
    {
5901
8.29M
        return (m_desc & detail::has_custom_types_bit) == 0;
5902
8.29M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::is_only_builtin() const
Line
Count
Source
5900
776k
    {
5901
776k
        return (m_desc & detail::has_custom_types_bit) == 0;
5902
776k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::is_only_builtin() const
Line
Count
Source
5900
7.51M
    {
5901
7.51M
        return (m_desc & detail::has_custom_types_bit) == 0;
5902
7.51M
    }
5903
5904
    SCN_NODISCARD constexpr detail::arg_type type(std::size_t index) const
5905
8.29M
    {
5906
        // First (0th) index is size, types start after that
5907
8.29M
        const auto shift = (index + 1) * detail::packed_arg_bits;
5908
8.29M
        const std::size_t mask = (1 << detail::packed_arg_bits) - 1;
5909
8.29M
        return static_cast<detail::arg_type>((m_desc >> shift) & mask);
5910
8.29M
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::type(unsigned long) const
Line
Count
Source
5905
776k
    {
5906
        // First (0th) index is size, types start after that
5907
776k
        const auto shift = (index + 1) * detail::packed_arg_bits;
5908
776k
        const std::size_t mask = (1 << detail::packed_arg_bits) - 1;
5909
776k
        return static_cast<detail::arg_type>((m_desc >> shift) & mask);
5910
776k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::type(unsigned long) const
Line
Count
Source
5905
7.51M
    {
5906
        // First (0th) index is size, types start after that
5907
7.51M
        const auto shift = (index + 1) * detail::packed_arg_bits;
5908
7.51M
        const std::size_t mask = (1 << detail::packed_arg_bits) - 1;
5909
7.51M
        return static_cast<detail::arg_type>((m_desc >> shift) & mask);
5910
7.51M
    }
5911
5912
    SCN_NODISCARD constexpr std::size_t max_size() const
5913
0
    {
5914
0
        return SCN_LIKELY(is_packed()) ? detail::max_packed_args
5915
0
                                       : (m_desc & ~detail::is_unpacked_bit &
5916
0
                                          ~detail::has_custom_types_bit);
5917
0
    }
Unexecuted instantiation: scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::max_size() const
Unexecuted instantiation: scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::max_size() const
5918
5919
    size_t m_desc{0};
5920
    union {
5921
        void* const* m_builtin_values;
5922
        const detail::arg_value* m_values;
5923
        const basic_scan_arg<Context>* m_args{nullptr};
5924
    };
5925
};
5926
5927
/////////////////////////////////////////////////////////////////
5928
// scan_parse_context
5929
/////////////////////////////////////////////////////////////////
5930
5931
/**
5932
 * Format string parsing context, wrapping the format string being parsed,
5933
 * and a counter for argument indexing.
5934
 *
5935
 * \ingroup ctx
5936
 */
5937
template <typename CharT>
5938
class basic_scan_parse_context {
5939
public:
5940
    using char_type = CharT;
5941
    using iterator = typename std::basic_string_view<CharT>::const_pointer;
5942
    using const_iterator = iterator;
5943
5944
    /**
5945
     * Construct a `basic_scan_parse_context` over a format string `format`.
5946
     */
5947
    explicit constexpr basic_scan_parse_context(
5948
        std::basic_string_view<CharT> format,
5949
        int next_arg_id = 0)
5950
4.23M
        : m_format{format}, m_next_arg_id{next_arg_id}
5951
4.23M
    {
5952
4.23M
    }
scn::v4::basic_scan_parse_context<char>::basic_scan_parse_context(std::__1::basic_string_view<char, std::__1::char_traits<char> >, int)
Line
Count
Source
5950
420k
        : m_format{format}, m_next_arg_id{next_arg_id}
5951
420k
    {
5952
420k
    }
scn::v4::basic_scan_parse_context<wchar_t>::basic_scan_parse_context(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, int)
Line
Count
Source
5950
3.81M
        : m_format{format}, m_next_arg_id{next_arg_id}
5951
3.81M
    {
5952
3.81M
    }
5953
5954
    basic_scan_parse_context(const basic_scan_parse_context&) = delete;
5955
    basic_scan_parse_context& operator=(const basic_scan_parse_context&) =
5956
        delete;
5957
    basic_scan_parse_context(basic_scan_parse_context&&) = delete;
5958
    basic_scan_parse_context& operator=(basic_scan_parse_context&&) = delete;
5959
    ~basic_scan_parse_context() = default;
5960
5961
    /// Returns an iterator pointing to the beginning of the format string
5962
    constexpr auto begin() const noexcept
5963
8.38M
    {
5964
8.38M
        return m_format.data();
5965
8.38M
    }
scn::v4::basic_scan_parse_context<char>::begin() const
Line
Count
Source
5963
812k
    {
5964
812k
        return m_format.data();
5965
812k
    }
scn::v4::basic_scan_parse_context<wchar_t>::begin() const
Line
Count
Source
5963
7.57M
    {
5964
7.57M
        return m_format.data();
5965
7.57M
    }
5966
    /// Returns an iterator pointing to the end of the format string
5967
    constexpr auto end() const noexcept
5968
    {
5969
        return m_format.data() + m_format.size();
5970
    }
5971
5972
    /// Advance the beginning of the format string to `it`
5973
    constexpr void advance_to(iterator it)
5974
4.14M
    {
5975
4.14M
        m_format.remove_prefix(static_cast<std::size_t>(it - begin()));
5976
4.14M
    }
scn::v4::basic_scan_parse_context<char>::advance_to(char const*)
Line
Count
Source
5974
392k
    {
5975
392k
        m_format.remove_prefix(static_cast<std::size_t>(it - begin()));
5976
392k
    }
scn::v4::basic_scan_parse_context<wchar_t>::advance_to(wchar_t const*)
Line
Count
Source
5974
3.75M
    {
5975
3.75M
        m_format.remove_prefix(static_cast<std::size_t>(it - begin()));
5976
3.75M
    }
5977
5978
    constexpr size_t next_arg_id()
5979
4.23M
    {
5980
4.23M
        if (SCN_UNLIKELY(m_next_arg_id < 0)) {
5981
0
            on_error(
5982
0
                "Cannot switch from manual to automatic argument indexing");
5983
0
            return 0;
5984
0
        }
5985
5986
4.23M
        auto id = static_cast<size_t>(m_next_arg_id++);
5987
4.23M
        do_check_arg_id(id);
5988
4.23M
        return id;
5989
4.23M
    }
scn::v4::basic_scan_parse_context<char>::next_arg_id()
Line
Count
Source
5979
420k
    {
5980
420k
        if (SCN_UNLIKELY(m_next_arg_id < 0)) {
5981
0
            on_error(
5982
0
                "Cannot switch from manual to automatic argument indexing");
5983
0
            return 0;
5984
0
        }
5985
5986
420k
        auto id = static_cast<size_t>(m_next_arg_id++);
5987
420k
        do_check_arg_id(id);
5988
420k
        return id;
5989
420k
    }
scn::v4::basic_scan_parse_context<wchar_t>::next_arg_id()
Line
Count
Source
5979
3.81M
    {
5980
3.81M
        if (SCN_UNLIKELY(m_next_arg_id < 0)) {
5981
0
            on_error(
5982
0
                "Cannot switch from manual to automatic argument indexing");
5983
0
            return 0;
5984
0
        }
5985
5986
3.81M
        auto id = static_cast<size_t>(m_next_arg_id++);
5987
3.81M
        do_check_arg_id(id);
5988
3.81M
        return id;
5989
3.81M
    }
5990
5991
    constexpr void check_arg_id(std::size_t id)
5992
0
    {
5993
0
        if (SCN_UNLIKELY(m_next_arg_id > 0)) {
5994
0
            on_error(
5995
0
                "Cannot switch from manual to automatic argument indexing");
5996
0
            return;
5997
0
        }
5998
0
        m_next_arg_id = -1;
5999
0
        do_check_arg_id(id);
6000
0
    }
Unexecuted instantiation: scn::v4::basic_scan_parse_context<char>::check_arg_id(unsigned long)
Unexecuted instantiation: scn::v4::basic_scan_parse_context<wchar_t>::check_arg_id(unsigned long)
6001
6002
    /**
6003
     * Fail format string parsing with the message `msg`.
6004
     * Calling this member function is not a constant expression,
6005
     * causing a compile-time error, if compile-time format string checking is
6006
     * enabled.
6007
     */
6008
    scan_error on_error(const char* msg)
6009
0
    {
6010
0
        m_error = unexpected(detail::handle_error(
6011
0
            scan_error{scan_error::invalid_format_string, msg}));
6012
0
        return m_error.error();
6013
0
    }
Unexecuted instantiation: scn::v4::basic_scan_parse_context<char>::on_error(char const*)
Unexecuted instantiation: scn::v4::basic_scan_parse_context<wchar_t>::on_error(char const*)
6014
6015
    scan_expected<void> get_error()
6016
    {
6017
        return m_error;
6018
    }
6019
6020
protected:
6021
    constexpr void do_check_arg_id(size_t id);
6022
6023
    std::basic_string_view<CharT> m_format;
6024
    scan_expected<void> m_error{};
6025
    int m_next_arg_id{0};
6026
};
6027
6028
/////////////////////////////////////////////////////////////////
6029
// Result types
6030
/////////////////////////////////////////////////////////////////
6031
6032
namespace detail {
6033
template <typename... Args>
6034
struct scan_result_value_storage {
6035
public:
6036
    using tuple_type = std::tuple<Args...>;
6037
6038
10.3M
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result_value_storage()
Line
Count
Source
6038
656k
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::scan_result_value_storage()
Line
Count
Source
6038
298k
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result_value_storage()
Line
Count
Source
6038
6.24M
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::scan_result_value_storage()
Line
Count
Source
6038
3.12M
    constexpr scan_result_value_storage() = default;
Unexecuted instantiation: scn::v4::detail::scan_result_value_storage<double>::scan_result_value_storage()
6039
6040
    constexpr scan_result_value_storage(tuple_type&& values)
6041
        : m_values(SCN_MOVE(values))
6042
    {
6043
    }
6044
6045
    /// Access the scanned values
6046
    tuple_type& values() &
6047
8.29M
    {
6048
8.29M
        return m_values;
6049
8.29M
    }
scn::v4::detail::scan_result_value_storage<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::values() &
Line
Count
Source
6047
533k
    {
6048
533k
        return m_values;
6049
533k
    }
scn::v4::detail::scan_result_value_storage<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::values() &
Line
Count
Source
6047
243k
    {
6048
243k
        return m_values;
6049
243k
    }
scn::v4::detail::scan_result_value_storage<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::values() &
Line
Count
Source
6047
5.00M
    {
6048
5.00M
        return m_values;
6049
5.00M
    }
scn::v4::detail::scan_result_value_storage<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::values() &
Line
Count
Source
6047
2.50M
    {
6048
2.50M
        return m_values;
6049
2.50M
    }
Unexecuted instantiation: scn::v4::detail::scan_result_value_storage<double>::values() &
6050
    /// Access the scanned values
6051
    const tuple_type& values() const&
6052
    {
6053
        return m_values;
6054
    }
6055
    /// Access the scanned values
6056
    tuple_type&& values() &&
6057
    {
6058
        return SCN_MOVE(m_values);
6059
    }
6060
    /// Access the scanned values
6061
    const tuple_type&& values() const&&
6062
    {
6063
        return SCN_MOVE(m_values);
6064
    }
6065
6066
    /// Access the single scanned value
6067
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
6068
    decltype(auto) value() &
6069
2.02M
    {
6070
2.02M
        return std::get<0>(m_values);
6071
2.02M
    }
_ZNR3scn2v46detail25scan_result_value_storageIJNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEE5valueILm1ETnPNS3_9enable_ifIXeqT_Li1EEvE4typeELPv0EEEDcv
Line
Count
Source
6069
122k
    {
6070
122k
        return std::get<0>(m_values);
6071
122k
    }
_ZNR3scn2v46detail25scan_result_value_storageIJNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEEEE5valueILm1ETnPNS3_9enable_ifIXeqT_Li1EEvE4typeELPv0EEEDcv
Line
Count
Source
6069
55.4k
    {
6070
55.4k
        return std::get<0>(m_values);
6071
55.4k
    }
_ZNR3scn2v46detail25scan_result_value_storageIJNSt3__112basic_stringIwNS3_11char_traitsIwEENS3_9allocatorIwEEEEEE5valueILm1ETnPNS3_9enable_ifIXeqT_Li1EEvE4typeELPv0EEEDcv
Line
Count
Source
6069
1.23M
    {
6070
1.23M
        return std::get<0>(m_values);
6071
1.23M
    }
_ZNR3scn2v46detail25scan_result_value_storageIJNSt3__117basic_string_viewIwNS3_11char_traitsIwEEEEEE5valueILm1ETnPNS3_9enable_ifIXeqT_Li1EEvE4typeELPv0EEEDcv
Line
Count
Source
6069
616k
    {
6070
616k
        return std::get<0>(m_values);
6071
616k
    }
Unexecuted instantiation: _ZNR3scn2v46detail25scan_result_value_storageIJdEE5valueILm1ETnPNSt3__19enable_ifIXeqT_Li1EEvE4typeELPv0EEEDcv
6072
    /// Access the single scanned value
6073
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
6074
    decltype(auto) value() const&
6075
    {
6076
        return std::get<0>(m_values);
6077
    }
6078
    /// Access the single scanned value
6079
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
6080
    decltype(auto) value() &&
6081
    {
6082
        return SCN_MOVE(std::get<0>(m_values));
6083
    }
6084
    /// Access the single scanned value
6085
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
6086
    decltype(auto) value() const&&
6087
    {
6088
        return SCN_MOVE(std::get<0>(m_values));
6089
    }
6090
6091
private:
6092
    SCN_NO_UNIQUE_ADDRESS tuple_type m_values{};
6093
};
6094
6095
struct scan_result_convert_tag {};
6096
6097
template <typename Range>
6098
struct scan_result_range_storage {
6099
    static_assert(is_specialization_of_v<Range, ranges::subrange>,
6100
                  "scan_result<Range> accepts only subranges as Ranges");
6101
6102
public:
6103
    using range_type = Range;
6104
    using iterator = ranges::iterator_t<Range>;
6105
    using sentinel = ranges::sentinel_t<Range>;
6106
6107
10.3M
    constexpr scan_result_range_storage() = default;
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::scan_result_range_storage()
Line
Count
Source
6107
597k
    constexpr scan_result_range_storage() = default;
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::scan_result_range_storage()
Line
Count
Source
6107
357k
    constexpr scan_result_range_storage() = default;
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::scan_result_range_storage()
Line
Count
Source
6107
6.24M
    constexpr scan_result_range_storage() = default;
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::scan_result_range_storage()
Line
Count
Source
6107
3.12M
    constexpr scan_result_range_storage() = default;
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::scan_result_range_storage()
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >::scan_result_range_storage()
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::scan_result_range_storage()
6108
6109
    constexpr scan_result_range_storage(range_type&& r) : m_range(SCN_MOVE(r))
6110
    {
6111
    }
6112
6113
    template <typename R>
6114
    explicit constexpr scan_result_range_storage(scan_result_convert_tag, R&& r)
6115
        : m_range(SCN_MOVE(r))
6116
    {
6117
    }
6118
6119
    /// Access the ununsed source range
6120
    range_type range() const
6121
    {
6122
        return m_range;
6123
    }
6124
6125
    /// The beginning of the unused source range
6126
    auto begin() const
6127
10.0M
    {
6128
10.0M
        return ranges::begin(m_range);
6129
10.0M
    }
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::begin() const
Line
Count
Source
6127
535k
    {
6128
535k
        return ranges::begin(m_range);
6129
535k
    }
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::begin() const
Line
Count
Source
6127
326k
    {
6128
326k
        return ranges::begin(m_range);
6129
326k
    }
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::begin() const
Line
Count
Source
6127
6.11M
    {
6128
6.11M
        return ranges::begin(m_range);
6129
6.11M
    }
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::begin() const
Line
Count
Source
6127
3.05M
    {
6128
3.05M
        return ranges::begin(m_range);
6129
3.05M
    }
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::begin() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::begin() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >::begin() const
6130
    /// The end of the unused source range
6131
    auto end() const
6132
0
    {
6133
0
        return ranges::end(m_range);
6134
0
    }
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::end() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::end() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::end() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::end() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::end() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >::end() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::end() const
6135
6136
    template <typename Other>
6137
    void set_range(Other&& r)
6138
10.0M
    {
6139
10.0M
        m_range = std::forward<Other>(r);
6140
10.0M
    }
void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::set_range<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&)
Line
Count
Source
6138
535k
    {
6139
535k
        m_range = std::forward<Other>(r);
6140
535k
    }
void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >::set_range<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&&)
Line
Count
Source
6138
326k
    {
6139
326k
        m_range = std::forward<Other>(r);
6140
326k
    }
void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::set_range<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
6138
6.11M
    {
6139
6.11M
        m_range = std::forward<Other>(r);
6140
6.11M
    }
void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >::set_range<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&&)
Line
Count
Source
6138
3.05M
    {
6139
3.05M
        m_range = std::forward<Other>(r);
6140
3.05M
    }
Unexecuted instantiation: void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::set_range<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >::set_range<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >&&)
Unexecuted instantiation: void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::set_range<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
6141
6142
protected:
6143
    template <typename Other>
6144
    void assign_range(Other&& r)
6145
    {
6146
        m_range = r.m_range;
6147
    }
6148
6149
private:
6150
    SCN_NO_UNIQUE_ADDRESS range_type m_range{};
6151
};
6152
6153
struct scan_result_file_storage {
6154
public:
6155
    using range_type = std::FILE*;
6156
6157
    constexpr scan_result_file_storage() = default;
6158
6159
0
    constexpr scan_result_file_storage(std::FILE* f) : m_file(f) {}
6160
6161
    /// File used for scanning
6162
    std::FILE* file() const
6163
0
    {
6164
0
        return m_file;
6165
0
    }
6166
6167
    void set_range(std::FILE* f)
6168
0
    {
6169
0
        m_file = f;
6170
0
    }
6171
6172
protected:
6173
    void assign_range(const scan_result_file_storage& f)
6174
0
    {
6175
0
        m_file = f.m_file;
6176
0
    }
6177
6178
private:
6179
    std::FILE* m_file{nullptr};
6180
};
6181
6182
struct scan_result_dangling {
6183
    using range_type = ranges::dangling;
6184
6185
    constexpr scan_result_dangling() = default;
6186
6187
    template <typename... Args>
6188
    explicit constexpr scan_result_dangling(Args&&...)
6189
    {
6190
    }
6191
6192
    range_type range() const
6193
0
    {
6194
0
        return {};
6195
0
    }
6196
6197
    ranges::dangling begin() const
6198
0
    {
6199
0
        return {};
6200
0
    }
6201
    ranges::dangling end() const
6202
0
    {
6203
0
        return {};
6204
0
    }
6205
6206
    template <typename... Args>
6207
    void set_range(Args&&...)
6208
    {
6209
    }
6210
6211
protected:
6212
    template <typename... Args>
6213
    void assign_range(Args&&...)
6214
    {
6215
    }
6216
};
6217
6218
template <typename Range>
6219
constexpr auto get_scan_result_base()
6220
0
{
6221
0
    if constexpr (std::is_same_v<remove_cvref_t<Range>, ranges::dangling>) {
6222
0
        return type_identity<scan_result_dangling>{};
6223
0
    }
6224
0
    else if constexpr (std::is_same_v<remove_cvref_t<Range>, std::FILE*>) {
6225
0
        return type_identity<scan_result_file_storage>{};
6226
0
    }
6227
0
    else {
6228
0
        return type_identity<scan_result_range_storage<Range>>{};
6229
0
    }
6230
0
}
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >()
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >()
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >()
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >()
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >()
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >()
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >()
6231
6232
#if !SCN_DOXYGEN
6233
template <typename Range>
6234
using scan_result_base = typename decltype(get_scan_result_base<Range>())::type;
6235
#else
6236
template <typename Range>
6237
using scan_result_base = scan_result_range_storage<Range>;
6238
#endif
6239
}  // namespace detail
6240
6241
/**
6242
 * \defgroup result Result types
6243
 *
6244
 * \brief Result and error types
6245
 *
6246
 * Instead of using exceptions, `scn::scan` and others return an object of
6247
 * type `scn::scan_result`, wrapped inside a `scn::scan_expected`.
6248
 */
6249
6250
/**
6251
 * Type returned by `scan`, contains the unused input as a subrange, and the
6252
 * scanned values in a tuple.
6253
 */
6254
template <typename Range, typename... Args>
6255
class scan_result : public detail::scan_result_base<Range>,
6256
                    public detail::scan_result_value_storage<Args...> {
6257
    using range_base = detail::scan_result_base<Range>;
6258
    using value_base = detail::scan_result_value_storage<Args...>;
6259
6260
public:
6261
    using range_type = typename range_base::range_type;
6262
    using tuple_type = typename value_base::tuple_type;
6263
6264
10.3M
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result()
Line
Count
Source
6264
298k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::scan_result()
Line
Count
Source
6264
298k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result()
Line
Count
Source
6264
357k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result()
Line
Count
Source
6264
3.12M
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::scan_result()
Line
Count
Source
6264
3.12M
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result()
Line
Count
Source
6264
3.12M
    constexpr scan_result() = default;
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result()
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>::scan_result()
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result()
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result()
6265
6266
    constexpr scan_result(const scan_result&) = default;
6267
0
    constexpr scan_result(scan_result&&) = default;
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
6268
    constexpr scan_result& operator=(const scan_result&) = default;
6269
0
    constexpr scan_result& operator=(scan_result&&) = default;
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
6270
6271
6.89M
    ~scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Line
Count
Source
6271
298k
    ~scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Line
Count
Source
6271
357k
    ~scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_result()
Line
Count
Source
6271
3.12M
    ~scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_result()
Line
Count
Source
6271
3.12M
    ~scan_result() = default;
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
6272
6273
    scan_result(range_type r, tuple_type&& values)
6274
        : range_base(SCN_MOVE(r)), value_base(SCN_MOVE(values))
6275
    {
6276
    }
6277
6278
    template <typename OtherR,
6279
              std::enable_if_t<std::is_constructible_v<range_type, OtherR>>* =
6280
                  nullptr>
6281
    scan_result(OtherR&& r, tuple_type&& values)
6282
        : range_base(detail::scan_result_convert_tag{}, SCN_FWD(r)),
6283
          value_base(SCN_MOVE(values))
6284
    {
6285
    }
6286
6287
    template <typename OtherR,
6288
              std::enable_if_t<
6289
                  std::is_constructible_v<range_type, OtherR> &&
6290
                  std::is_convertible_v<const OtherR&, range_type>>* = nullptr>
6291
    SCN_IMPLICIT scan_result(const scan_result<OtherR, Args...>& o)
6292
        : range_base(detail::scan_result_convert_tag{}, o.range()),
6293
          value_base(o.values())
6294
    {
6295
    }
6296
    template <typename OtherR,
6297
              std::enable_if_t<
6298
                  std::is_constructible_v<range_type, OtherR> &&
6299
                  !std::is_convertible_v<const OtherR&, range_type>>* = nullptr>
6300
    explicit scan_result(const scan_result<OtherR, Args...>& o)
6301
        : range_base(detail::scan_result_convert_tag{}, o.range()),
6302
          value_base(o.values())
6303
    {
6304
    }
6305
6306
    template <typename OtherR,
6307
              std::enable_if_t<std::is_constructible_v<range_type, OtherR> &&
6308
                               std::is_convertible_v<OtherR&&, range_type>>* =
6309
                  nullptr>
6310
    SCN_IMPLICIT scan_result(scan_result<OtherR, Args...>&& o)
6311
        : range_base(detail::scan_result_convert_tag{}, SCN_MOVE(o.range())),
6312
          value_base(SCN_MOVE(o.values()))
6313
    {
6314
    }
6315
    template <typename OtherR,
6316
              std::enable_if_t<std::is_constructible_v<range_type, OtherR> &&
6317
                               !std::is_convertible_v<OtherR&&, range_type>>* =
6318
                  nullptr>
6319
    explicit scan_result(scan_result<OtherR, Args...>&& o)
6320
        : range_base(detail::scan_result_convert_tag{}, SCN_MOVE(o.range())),
6321
          value_base(SCN_MOVE(o.values()))
6322
    {
6323
    }
6324
6325
    template <typename OtherR,
6326
              typename =
6327
                  std::enable_if_t<std::is_constructible_v<range_type, OtherR>>>
6328
    scan_result& operator=(const scan_result<OtherR, Args...>& o)
6329
    {
6330
        this->assign_range(o);
6331
        this->values() = o.values();
6332
        return *this;
6333
    }
6334
6335
    template <typename OtherR,
6336
              typename =
6337
                  std::enable_if_t<std::is_constructible_v<range_type, OtherR>>>
6338
    scan_result& operator=(scan_result<OtherR, Args...>&& o)
6339
    {
6340
        this->assign_range(o);
6341
        this->values() = SCN_MOVE(o.values());
6342
        return *this;
6343
    }
6344
};
6345
6346
template <typename R, typename... Args>
6347
scan_result(R, std::tuple<Args...>) -> scan_result<R, Args...>;
6348
template <typename R, typename Ctx, typename... Args>
6349
scan_result(R, detail::scan_arg_store<Ctx, Args...>&)
6350
    -> scan_result<R, Args...>;
6351
6352
namespace detail {
6353
template <typename SourceRange>
6354
auto make_vscan_result_range_end(SourceRange& source)
6355
10.0M
{
6356
10.0M
    return ranges::end(source);
6357
10.0M
}
auto scn::v4::detail::make_vscan_result_range_end<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&)
Line
Count
Source
6355
535k
{
6356
535k
    return ranges::end(source);
6357
535k
}
auto scn::v4::detail::make_vscan_result_range_end<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >&)
Line
Count
Source
6355
326k
{
6356
326k
    return ranges::end(source);
6357
326k
}
auto scn::v4::detail::make_vscan_result_range_end<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&)
Line
Count
Source
6355
6.11M
{
6356
6.11M
    return ranges::end(source);
6357
6.11M
}
auto scn::v4::detail::make_vscan_result_range_end<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >&)
Line
Count
Source
6355
3.05M
{
6356
3.05M
    return ranges::end(source);
6357
3.05M
}
Unexecuted instantiation: auto scn::v4::detail::make_vscan_result_range_end<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: auto scn::v4::detail::make_vscan_result_range_end<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Unexecuted instantiation: auto scn::v4::detail::make_vscan_result_range_end<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
6358
template <typename CharT, size_t N>
6359
auto make_vscan_result_range_end(CharT (&source)[N])
6360
    -> ranges::sentinel_t<CharT (&)[N]>
6361
{
6362
    return source + N - 1;
6363
}
6364
6365
template <typename SourceRange>
6366
auto make_vscan_result_range(SourceRange&& source, std::ptrdiff_t n)
6367
    -> borrowed_tail_subrange_t<SourceRange>
6368
10.0M
{
6369
    if constexpr (ranges::random_access_iterator<
6370
10.0M
                      ranges::iterator_t<SourceRange>>) {
6371
10.0M
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
6372
    }
6373
0
    else {
6374
0
        auto it = ranges::begin(source);
6375
0
        while (n > 0) {
6376
0
            --n;
6377
0
            ++it;
6378
0
        }
6379
0
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
6380
0
    }
6381
10.0M
}
_ZN3scn2v46detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISB_EEE4typeEOSB_l
Line
Count
Source
6368
535k
{
6369
    if constexpr (ranges::random_access_iterator<
6370
535k
                      ranges::iterator_t<SourceRange>>) {
6371
535k
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
6372
    }
6373
    else {
6374
        auto it = ranges::begin(source);
6375
        while (n > 0) {
6376
            --n;
6377
            ++it;
6378
        }
6379
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
6380
    }
6381
535k
}
_ZN3scn2v46detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISH_EEE4typeEOSH_l
Line
Count
Source
6368
326k
{
6369
    if constexpr (ranges::random_access_iterator<
6370
326k
                      ranges::iterator_t<SourceRange>>) {
6371
326k
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
6372
    }
6373
    else {
6374
        auto it = ranges::begin(source);
6375
        while (n > 0) {
6376
            --n;
6377
            ++it;
6378
        }
6379
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
6380
    }
6381
326k
}
_ZN3scn2v46detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISB_EEE4typeEOSB_l
Line
Count
Source
6368
6.11M
{
6369
    if constexpr (ranges::random_access_iterator<
6370
6.11M
                      ranges::iterator_t<SourceRange>>) {
6371
6.11M
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
6372
    }
6373
    else {
6374
        auto it = ranges::begin(source);
6375
        while (n > 0) {
6376
            --n;
6377
            ++it;
6378
        }
6379
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
6380
    }
6381
6.11M
}
_ZN3scn2v46detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISH_EEE4typeEOSH_l
Line
Count
Source
6368
3.05M
{
6369
    if constexpr (ranges::random_access_iterator<
6370
3.05M
                      ranges::iterator_t<SourceRange>>) {
6371
3.05M
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
6372
    }
6373
    else {
6374
        auto it = ranges::begin(source);
6375
        while (n > 0) {
6376
            --n;
6377
            ++it;
6378
        }
6379
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
6380
    }
6381
3.05M
}
Unexecuted instantiation: _ZN3scn2v46detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeINS1_17basic_scan_bufferIcE16forward_iteratorENS3_18default_sentinel_tEEEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISD_EEE4typeEOSD_l
Unexecuted instantiation: _ZN3scn2v46detail23make_vscan_result_rangeIRNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISC_EEE4typeEOSC_l
Unexecuted instantiation: _ZN3scn2v46detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeINS1_17basic_scan_bufferIwE16forward_iteratorENS3_18default_sentinel_tEEEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISD_EEE4typeEOSD_l
6382
inline auto make_vscan_result_range(std::FILE* source, std::ptrdiff_t)
6383
0
{
6384
0
    return source;
6385
0
}
6386
}  // namespace detail
6387
6388
/////////////////////////////////////////////////////////////////
6389
// Format string parsing
6390
/////////////////////////////////////////////////////////////////
6391
6392
namespace detail {
6393
/// Parse context with extra data used only for compile-time checks
6394
template <typename CharT>
6395
class compile_parse_context : public basic_scan_parse_context<CharT> {
6396
    using base = basic_scan_parse_context<CharT>;
6397
6398
public:
6399
    template <typename Source>
6400
    explicit constexpr compile_parse_context(
6401
        std::basic_string_view<CharT> format_str,
6402
        int num_args,
6403
        const arg_type* types,
6404
        type_identity<Source> source_tag,
6405
        int next_arg_id = 0)
6406
        : base(format_str, next_arg_id),
6407
          m_num_args(num_args),
6408
          m_types(types),
6409
          m_is_contiguous(ranges::range<Source> &&
6410
                          ranges::contiguous_range<Source>),
6411
          m_is_borrowed(
6412
              (ranges::range<Source> && ranges::borrowed_range<Source>) ||
6413
              std::is_same_v<detail::remove_cvref_t<Source>, std::FILE*>)
6414
    {
6415
    }
6416
6417
    SCN_NODISCARD constexpr int get_num_args() const
6418
0
    {
6419
0
        return m_num_args;
6420
0
    }
Unexecuted instantiation: scn::v4::detail::compile_parse_context<char>::get_num_args() const
Unexecuted instantiation: scn::v4::detail::compile_parse_context<wchar_t>::get_num_args() const
6421
    SCN_NODISCARD constexpr arg_type get_arg_type(std::size_t id) const
6422
    {
6423
        return m_types[id];
6424
    }
6425
6426
    SCN_GCC_PUSH
6427
    SCN_GCC_IGNORE("-Wsign-conversion")
6428
6429
    constexpr std::size_t next_arg_id()
6430
    {
6431
        auto id = base::next_arg_id();
6432
        if (SCN_UNLIKELY(id >= static_cast<size_t>(m_num_args))) {
6433
            this->on_error("Argument not found");
6434
        }
6435
        return id;
6436
    }
6437
6438
    constexpr void check_arg_id(std::size_t id)
6439
    {
6440
        base::check_arg_id(id);
6441
        if (SCN_UNLIKELY(id >= static_cast<size_t>(m_num_args))) {
6442
            this->on_error("Argument not found");
6443
        }
6444
    }
6445
    using base::check_arg_id;
6446
6447
    constexpr void check_arg_can_be_read(std::size_t id)
6448
    {
6449
        auto type = get_arg_type(id);
6450
6451
        if ((type == arg_type::narrow_string_view_type ||
6452
             type == arg_type::wide_string_view_type) &&
6453
            !m_is_contiguous) {
6454
            // clang-format off
6455
            this->on_error("Cannot read a string_view from a non-contiguous source");
6456
            // clang-format on
6457
            return;
6458
        }
6459
        if ((type == arg_type::narrow_string_view_type ||
6460
             type == arg_type::wide_string_view_type) &&
6461
            !m_is_borrowed) {
6462
            // clang-format off
6463
            this->on_error("Cannot read a string_view from a non-borrowed source");
6464
            // clang-format on
6465
            return;
6466
        }
6467
6468
        if ((type == arg_type::narrow_regex_matches_type ||
6469
             type == arg_type::wide_regex_matches_type) &&
6470
            !m_is_contiguous) {
6471
            // clang-format off
6472
            this->on_error("Cannot read a regex_matches from a non-contiguous source");
6473
            // clang-format on
6474
            return;
6475
        }
6476
    }
6477
6478
private:
6479
    int m_num_args;
6480
    const arg_type* m_types;
6481
    bool m_is_contiguous, m_is_borrowed;
6482
6483
    SCN_GCC_POP  // -Wsign-conversion
6484
};
6485
6486
constexpr inline bool is_constant_evaluated(bool default_value = false) noexcept
6487
0
{
6488
0
#ifdef __cpp_lib_is_constant_evaluated
6489
0
    SCN_UNUSED(default_value);
6490
0
    return std::is_constant_evaluated();
6491
0
#else
6492
0
    return default_value;
6493
0
#endif
6494
0
}
6495
}  // namespace detail
6496
6497
template <typename CharT>
6498
constexpr void basic_scan_parse_context<CharT>::do_check_arg_id(size_t id)
6499
4.23M
{
6500
4.23M
    if (detail::is_constant_evaluated() &&
6501
4.23M
        (!SCN_GCC || SCN_GCC >= SCN_COMPILER(12, 0, 0))) {
6502
        // The cast below will cause an error on gcc pre-12
6503
0
        using parse_context_type = detail::compile_parse_context<CharT>;
6504
0
        if (static_cast<int>(id) >=
6505
0
            static_cast<parse_context_type*>(this)->get_num_args()) {
6506
0
            SCN_UNLIKELY_ATTR
6507
0
            on_error("Argument not found");
6508
0
        }
6509
0
    }
6510
4.23M
}
scn::v4::basic_scan_parse_context<char>::do_check_arg_id(unsigned long)
Line
Count
Source
6499
420k
{
6500
420k
    if (detail::is_constant_evaluated() &&
6501
420k
        (!SCN_GCC || SCN_GCC >= SCN_COMPILER(12, 0, 0))) {
6502
        // The cast below will cause an error on gcc pre-12
6503
0
        using parse_context_type = detail::compile_parse_context<CharT>;
6504
0
        if (static_cast<int>(id) >=
6505
0
            static_cast<parse_context_type*>(this)->get_num_args()) {
6506
0
            SCN_UNLIKELY_ATTR
6507
0
            on_error("Argument not found");
6508
0
        }
6509
0
    }
6510
420k
}
scn::v4::basic_scan_parse_context<wchar_t>::do_check_arg_id(unsigned long)
Line
Count
Source
6499
3.81M
{
6500
3.81M
    if (detail::is_constant_evaluated() &&
6501
3.81M
        (!SCN_GCC || SCN_GCC >= SCN_COMPILER(12, 0, 0))) {
6502
        // The cast below will cause an error on gcc pre-12
6503
0
        using parse_context_type = detail::compile_parse_context<CharT>;
6504
0
        if (static_cast<int>(id) >=
6505
0
            static_cast<parse_context_type*>(this)->get_num_args()) {
6506
0
            SCN_UNLIKELY_ATTR
6507
0
            on_error("Argument not found");
6508
0
        }
6509
0
    }
6510
3.81M
}
6511
6512
namespace detail {
6513
enum class align_type : unsigned char {
6514
    none = 0,
6515
    left = 1,   // '<'
6516
    right = 2,  // '>'
6517
    center = 3  // '^'
6518
};
6519
6520
enum class presentation_type {
6521
    none,
6522
    int_binary,            // 'b', 'B'
6523
    int_decimal,           // 'd'
6524
    int_generic,           // 'i'
6525
    int_unsigned_decimal,  // 'u'
6526
    int_octal,             // 'o'
6527
    int_hex,               // 'x', 'X'
6528
    int_arbitrary_base,    // 'rnn', 'Rnn' (R for radix)
6529
    float_hex,             // 'a', 'A'
6530
    float_scientific,      // 'e', 'E'
6531
    float_fixed,           // 'f', 'F'
6532
    float_general,         // 'g', 'G'
6533
    string,                // 's'
6534
    string_set,            // '[...]'
6535
    regex,                 // '/.../.'
6536
    regex_escaped,         // '/..\/../.'
6537
    character,             // 'c'
6538
    escaped_character,     // '?'
6539
    pointer,               // 'p'
6540
};
6541
6542
enum class regex_flags {
6543
    none = 0,
6544
    multiline = 1,   // /m
6545
    singleline = 2,  // /s
6546
    nocase = 4,      // /i
6547
    nocapture = 8,   // /n
6548
    // TODO?
6549
    // would probably need to go hand-in-hand with locale,
6550
    // where it could even be the default/only option -> no flag?
6551
    // why else would you even use locale with a regex?
6552
    // collate = 16,
6553
};
6554
6555
constexpr regex_flags operator&(regex_flags a, regex_flags b)
6556
0
{
6557
0
    return static_cast<regex_flags>(static_cast<unsigned>(a) &
6558
0
                                    static_cast<unsigned>(b));
6559
0
}
6560
constexpr regex_flags operator|(regex_flags a, regex_flags b)
6561
0
{
6562
0
    return static_cast<regex_flags>(static_cast<unsigned>(a) |
6563
0
                                    static_cast<unsigned>(b));
6564
0
}
6565
constexpr regex_flags operator^(regex_flags a, regex_flags b)
6566
0
{
6567
0
    return static_cast<regex_flags>(static_cast<unsigned>(a) ^
6568
0
                                    static_cast<unsigned>(b));
6569
0
}
6570
6571
constexpr regex_flags& operator&=(regex_flags& a, regex_flags b)
6572
0
{
6573
0
    return a = a & b;
6574
0
}
6575
constexpr regex_flags& operator|=(regex_flags& a, regex_flags b)
6576
0
{
6577
0
    return a = a | b;
6578
0
}
6579
constexpr regex_flags& operator^=(regex_flags& a, regex_flags b)
6580
0
{
6581
0
    return a = a ^ b;
6582
0
}
6583
6584
class fill_type {
6585
public:
6586
    constexpr void operator=(char c)
6587
0
    {
6588
0
        m_data[0] = c;
6589
0
        m_size = 1;
6590
0
    }
6591
6592
    template <typename CharT>
6593
    constexpr void operator=(std::basic_string_view<CharT> s)
6594
0
    {
6595
0
        SCN_EXPECT(!s.empty());
6596
0
        SCN_EXPECT(s.size() * sizeof(CharT) <= max_size);
6597
0
        if constexpr (sizeof(CharT) == 1) {
6598
0
            for (size_t i = 0; i < s.size(); ++i) {
6599
0
                SCN_GCC_PUSH
6600
0
                SCN_GCC_IGNORE("-Wstringop-overflow")  // false positive
6601
0
                m_data[i] = s[i];
6602
0
                SCN_GCC_POP
6603
0
            }
6604
0
            m_size = static_cast<unsigned char>(s.size());
6605
        }
6606
        else if constexpr (sizeof(CharT) == 2) {
6607
            m_data[0] = static_cast<char>(static_cast<unsigned>(s.front()));
6608
            m_data[1] =
6609
                static_cast<char>(static_cast<unsigned>(s.front()) >> 8);
6610
            if (s.size() == 1) {
6611
                return;
6612
            }
6613
            m_data[2] = static_cast<char>(static_cast<unsigned>(s[1]));
6614
            m_data[3] = static_cast<char>(static_cast<unsigned>(s[1]) >> 8);
6615
        }
6616
0
        else {
6617
0
            const auto front = static_cast<unsigned>(s.front());
6618
0
            m_data[0] = static_cast<char>(front);
6619
0
            m_data[1] = static_cast<char>(front >> 8);
6620
0
            m_data[2] = static_cast<char>(front >> 16);
6621
0
            m_data[3] = static_cast<char>(front >> 24);
6622
0
        }
6623
0
    }
Unexecuted instantiation: void scn::v4::detail::fill_type::operator=<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: void scn::v4::detail::fill_type::operator=<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
6624
6625
    constexpr size_t size() const
6626
0
    {
6627
0
        return m_size;
6628
0
    }
6629
6630
    template <typename CharT>
6631
    CharT get_code_unit() const
6632
0
    {
6633
0
        SCN_EXPECT(m_size <= sizeof(CharT));
6634
0
        CharT r{};
6635
0
        std::memcpy(&r, m_data, m_size);
6636
0
        return r;
6637
0
    }
Unexecuted instantiation: char scn::v4::detail::fill_type::get_code_unit<char>() const
Unexecuted instantiation: wchar_t scn::v4::detail::fill_type::get_code_unit<wchar_t>() const
6638
6639
    template <typename CharT>
6640
    std::basic_string_view<CharT> get_code_units() const
6641
0
    {
6642
0
        return {reinterpret_cast<const CharT*>(m_data), m_size};
6643
0
    }
Unexecuted instantiation: std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::fill_type::get_code_units<char>() const
Unexecuted instantiation: std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::fill_type::get_code_units<wchar_t>() const
6644
6645
private:
6646
    static constexpr size_t max_size = 4;
6647
    char m_data[max_size] = {' '};
6648
    unsigned char m_size{1};
6649
};
6650
6651
struct format_specs {
6652
    int width{0}, precision{0};
6653
    fill_type fill{};
6654
    presentation_type type{presentation_type::none};
6655
    std::array<uint8_t, 128 / 8> charset_literals{0};
6656
    bool charset_has_nonascii{false}, charset_is_inverted{false};
6657
    const void* charset_string_data{nullptr};
6658
    size_t charset_string_size{0};
6659
    regex_flags regexp_flags{regex_flags::none};
6660
    unsigned char arbitrary_base{0};
6661
    align_type align{align_type::none};
6662
    bool localized{false};
6663
6664
    constexpr format_specs() = default;
6665
6666
    SCN_NODISCARD constexpr int get_base() const
6667
0
    {
6668
0
        SCN_GCC_COMPAT_PUSH
6669
0
        SCN_GCC_COMPAT_IGNORE("-Wswitch-enum")
6670
0
        switch (type) {
6671
0
            case presentation_type::none:
6672
0
                return 10;
6673
0
            case presentation_type::int_generic:
6674
0
                return 0;
6675
0
            case presentation_type::int_arbitrary_base:
6676
0
                return arbitrary_base;
6677
6678
0
            case presentation_type::int_binary:
6679
0
                return 2;
6680
0
            case presentation_type::int_octal:
6681
0
                return 8;
6682
0
            case presentation_type::int_decimal:
6683
0
            case presentation_type::int_unsigned_decimal:
6684
0
                return 10;
6685
0
            case presentation_type::int_hex:
6686
0
                return 16;
6687
6688
0
            default:
6689
0
                SCN_EXPECT(false);
6690
0
                SCN_UNREACHABLE;
6691
0
        }
6692
0
        SCN_GCC_COMPAT_POP
6693
0
    }
6694
6695
    template <typename CharT>
6696
    std::basic_string_view<CharT> charset_string() const
6697
0
    {
6698
0
        return {reinterpret_cast<const CharT*>(charset_string_data),
6699
0
                charset_string_size};
6700
0
    }
Unexecuted instantiation: std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::format_specs::charset_string<char>() const
Unexecuted instantiation: std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::format_specs::charset_string<wchar_t>() const
6701
};
6702
6703
struct specs_setter {
6704
public:
6705
4.23M
    explicit constexpr specs_setter(format_specs& specs) : m_specs(specs) {}
6706
6707
    constexpr void on_align(align_type align)
6708
0
    {
6709
0
        m_specs.align = align;
6710
0
    }
6711
    template <typename CharT>
6712
    constexpr void on_fill(std::basic_string_view<CharT> fill)
6713
0
    {
6714
0
        m_specs.fill = fill;
6715
0
    }
Unexecuted instantiation: void scn::v4::detail::specs_setter::on_fill<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: void scn::v4::detail::specs_setter::on_fill<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
6716
    template <bool Dependent = true>
6717
    constexpr void on_localized()
6718
0
    {
6719
0
        if constexpr (!SCN_DISABLE_LOCALE) {
6720
0
            m_specs.localized = true;
6721
        }
6722
        else {
6723
            on_error("'L' flag invalid when SCN_DISABLE_LOCALE is on");
6724
        }
6725
0
    }
6726
6727
    constexpr void on_width(int width)
6728
85.8k
    {
6729
85.8k
        if (m_specs.precision != 0 && width > m_specs.precision) {
6730
            // clang-format off
6731
0
            return this->on_error("Width (i.e., minimum field length) cannot be larger than precision (i.e., maximum field length)");
6732
            // clang-format on
6733
0
        }
6734
6735
85.8k
        m_specs.width = width;
6736
85.8k
    }
6737
    constexpr void on_precision(int prec)
6738
0
    {
6739
0
        if (m_specs.width > prec) {
6740
            // clang-format off
6741
0
            return this->on_error("Width (i.e., minimum field length) cannot be larger than precision (i.e., maximum field length)");
6742
            // clang-format on
6743
0
        }
6744
6745
0
        m_specs.precision = prec;
6746
0
    }
6747
6748
    constexpr void on_type(presentation_type type)
6749
4.14M
    {
6750
4.14M
        m_specs.type = type;
6751
4.14M
    }
6752
6753
    constexpr void on_charset_single(char32_t cp)
6754
0
    {
6755
0
        const auto cp_value = static_cast<unsigned>(cp);
6756
0
        if (SCN_LIKELY(cp_value <= 127)) {
6757
0
            m_specs.charset_literals[cp_value / 8] |=
6758
0
                static_cast<unsigned char>(1ul << (cp_value % 8));
6759
0
        }
6760
0
        else {
6761
0
            m_specs.charset_has_nonascii = true;
6762
0
        }
6763
0
    }
6764
6765
    constexpr void on_charset_range(char32_t begin, char32_t end)
6766
100k
    {
6767
100k
        const auto begin_value = static_cast<unsigned>(begin);
6768
100k
        const auto end_value = static_cast<unsigned>(end);
6769
100k
        SCN_EXPECT(begin_value < end_value);
6770
6771
100k
        if (SCN_LIKELY(end_value <= 127)) {
6772
            // No need to bit-twiddle with a mask, because with the
6773
            // SCN_ASSUME, -O3 will optimize this to a single operation
6774
100k
            SCN_ASSUME(begin_value < end_value);
6775
2.70M
            for (auto v = begin_value; v != end_value; ++v) {
6776
2.60M
                m_specs.charset_literals[v / 8] |=
6777
2.60M
                    static_cast<unsigned char>(1ul << (v % 8));
6778
2.60M
            }
6779
100k
        }
6780
0
        else {
6781
0
            m_specs.charset_has_nonascii = true;
6782
0
        }
6783
100k
    }
6784
6785
    constexpr void on_charset_inverted()
6786
0
    {
6787
0
        m_specs.charset_is_inverted = true;
6788
0
    }
6789
6790
    template <typename CharT>
6791
    constexpr void on_character_set_string(std::basic_string_view<CharT> fmt)
6792
50.0k
    {
6793
50.0k
        m_specs.charset_string_data = fmt.data();
6794
50.0k
        m_specs.charset_string_size = fmt.size();
6795
50.0k
        on_type(presentation_type::string_set);
6796
50.0k
    }
void scn::v4::detail::specs_setter::on_character_set_string<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
6792
20.6k
    {
6793
20.6k
        m_specs.charset_string_data = fmt.data();
6794
20.6k
        m_specs.charset_string_size = fmt.size();
6795
20.6k
        on_type(presentation_type::string_set);
6796
20.6k
    }
void scn::v4::detail::specs_setter::on_character_set_string<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
6792
29.4k
    {
6793
29.4k
        m_specs.charset_string_data = fmt.data();
6794
29.4k
        m_specs.charset_string_size = fmt.size();
6795
29.4k
        on_type(presentation_type::string_set);
6796
29.4k
    }
6797
6798
    template <typename CharT>
6799
    constexpr void on_regex_pattern(std::basic_string_view<CharT> pattern)
6800
0
    {
6801
0
        m_specs.charset_string_data = pattern.data();
6802
0
        m_specs.charset_string_size = pattern.size();
6803
0
    }
Unexecuted instantiation: void scn::v4::detail::specs_setter::on_regex_pattern<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: void scn::v4::detail::specs_setter::on_regex_pattern<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
6804
    constexpr void on_regex_flags(regex_flags flags)
6805
0
    {
6806
0
        m_specs.regexp_flags = flags;
6807
0
    }
6808
6809
    // Intentionally not constexpr
6810
    void on_error(const char* msg)
6811
85.8k
    {
6812
85.8k
        SCN_UNLIKELY_ATTR
6813
85.8k
        m_error = unexpected_scan_error(scan_error::invalid_format_string, msg);
6814
85.8k
    }
6815
    void on_error(scan_error err)
6816
0
    {
6817
0
        SCN_UNLIKELY_ATTR
6818
0
        m_error = unexpected(err);
6819
0
    }
6820
6821
    constexpr scan_expected<void> get_error() const
6822
4.38M
    {
6823
4.38M
        return m_error;
6824
4.38M
    }
6825
6826
protected:
6827
    format_specs& m_specs;
6828
    scan_expected<void> m_error;
6829
};
6830
6831
template <typename CharT>
6832
constexpr int parse_simple_int(const CharT*& begin, const CharT* end)
6833
85.8k
{
6834
85.8k
    SCN_EXPECT(begin != end);
6835
85.8k
    SCN_EXPECT(*begin >= '0' && *begin <= '9');
6836
6837
85.8k
    unsigned long long value = 0;
6838
171k
    do {
6839
171k
        value *= 10;
6840
171k
        value += static_cast<unsigned long long>(*begin - '0');
6841
171k
        if (value >
6842
171k
            static_cast<unsigned long long>(std::numeric_limits<int>::max())) {
6843
0
            return -1;
6844
0
        }
6845
171k
        ++begin;
6846
171k
    } while (begin != end && *begin >= '0' && *begin <= '9');
6847
85.8k
    return static_cast<int>(value);
6848
85.8k
}
int scn::v4::detail::parse_simple_int<char>(char const*&, char const*)
Line
Count
Source
6833
28.6k
{
6834
28.6k
    SCN_EXPECT(begin != end);
6835
28.6k
    SCN_EXPECT(*begin >= '0' && *begin <= '9');
6836
6837
28.6k
    unsigned long long value = 0;
6838
57.2k
    do {
6839
57.2k
        value *= 10;
6840
57.2k
        value += static_cast<unsigned long long>(*begin - '0');
6841
57.2k
        if (value >
6842
57.2k
            static_cast<unsigned long long>(std::numeric_limits<int>::max())) {
6843
0
            return -1;
6844
0
        }
6845
57.2k
        ++begin;
6846
57.2k
    } while (begin != end && *begin >= '0' && *begin <= '9');
6847
28.6k
    return static_cast<int>(value);
6848
28.6k
}
int scn::v4::detail::parse_simple_int<wchar_t>(wchar_t const*&, wchar_t const*)
Line
Count
Source
6833
57.2k
{
6834
57.2k
    SCN_EXPECT(begin != end);
6835
57.2k
    SCN_EXPECT(*begin >= '0' && *begin <= '9');
6836
6837
57.2k
    unsigned long long value = 0;
6838
114k
    do {
6839
114k
        value *= 10;
6840
114k
        value += static_cast<unsigned long long>(*begin - '0');
6841
114k
        if (value >
6842
114k
            static_cast<unsigned long long>(std::numeric_limits<int>::max())) {
6843
0
            return -1;
6844
0
        }
6845
114k
        ++begin;
6846
114k
    } while (begin != end && *begin >= '0' && *begin <= '9');
6847
57.2k
    return static_cast<int>(value);
6848
57.2k
}
6849
6850
template <typename CharT, typename IDHandler>
6851
constexpr const CharT* do_parse_arg_id(const CharT* begin,
6852
                                       const CharT* end,
6853
                                       IDHandler&& handler)
6854
0
{
6855
0
    SCN_EXPECT(begin != end);
6856
6857
0
    CharT c = *begin;
6858
0
    if (c < CharT{'0'} || c > CharT{'9'}) {
6859
0
        handler.on_error("Invalid argument ID");
6860
0
        return begin;
6861
0
    }
6862
6863
0
    int idx = 0;
6864
0
    if (c != CharT{'0'}) {
6865
0
        idx = parse_simple_int(begin, end);
6866
0
    }
6867
0
    else {
6868
0
        ++begin;
6869
0
    }
6870
6871
0
    if (begin == end || (*begin != CharT{'}'} && *begin != CharT{':'})) {
6872
0
        handler.on_error("Invalid argument ID");
6873
0
        return begin;
6874
0
    }
6875
0
    handler(idx);
6876
6877
0
    return begin;
6878
0
}
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::do_parse_arg_id<char, scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)::id_adapter&>(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&&)
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::do_parse_arg_id<char, scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)::id_adapter&>(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&&)
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::do_parse_arg_id<wchar_t, scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&&)
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::do_parse_arg_id<wchar_t, scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&&)
6879
6880
template <typename CharT, typename IDHandler>
6881
constexpr const CharT* parse_arg_id(const CharT* begin,
6882
                                    const CharT* end,
6883
                                    IDHandler&& handler)
6884
4.23M
{
6885
4.23M
    SCN_EXPECT(begin != end);
6886
4.23M
    if (*begin != '}' && *begin != ':') {
6887
0
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
6888
0
    }
6889
6890
4.23M
    handler();
6891
4.23M
    return begin;
6892
4.23M
}
impl.cpp:char const* scn::v4::detail::parse_arg_id<char, scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)::id_adapter&>(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&&)
Line
Count
Source
6884
264k
{
6885
264k
    SCN_EXPECT(begin != end);
6886
264k
    if (*begin != '}' && *begin != ':') {
6887
0
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
6888
0
    }
6889
6890
264k
    handler();
6891
264k
    return begin;
6892
264k
}
impl.cpp:char const* scn::v4::detail::parse_arg_id<char, scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)::id_adapter&>(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&&)
Line
Count
Source
6884
156k
{
6885
156k
    SCN_EXPECT(begin != end);
6886
156k
    if (*begin != '}' && *begin != ':') {
6887
0
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
6888
0
    }
6889
6890
156k
    handler();
6891
156k
    return begin;
6892
156k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_arg_id<wchar_t, scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&&)
Line
Count
Source
6884
2.54M
{
6885
2.54M
    SCN_EXPECT(begin != end);
6886
2.54M
    if (*begin != '}' && *begin != ':') {
6887
0
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
6888
0
    }
6889
6890
2.54M
    handler();
6891
2.54M
    return begin;
6892
2.54M
}
impl.cpp:wchar_t const* scn::v4::detail::parse_arg_id<wchar_t, scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&&)
Line
Count
Source
6884
1.27M
{
6885
1.27M
    SCN_EXPECT(begin != end);
6886
1.27M
    if (*begin != '}' && *begin != ':') {
6887
0
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
6888
0
    }
6889
6890
1.27M
    handler();
6891
1.27M
    return begin;
6892
1.27M
}
6893
6894
template <typename CharT>
6895
constexpr presentation_type parse_presentation_type(CharT type)
6896
4.14M
{
6897
4.14M
    switch (type) {
6898
0
        case 'b':
6899
0
        case 'B':
6900
0
            return presentation_type::int_binary;
6901
0
        case 'd':
6902
0
            return presentation_type::int_decimal;
6903
0
        case 'i':
6904
0
            return presentation_type::int_generic;
6905
0
        case 'u':
6906
0
            return presentation_type::int_unsigned_decimal;
6907
0
        case 'o':
6908
0
            return presentation_type::int_octal;
6909
0
        case 'x':
6910
0
        case 'X':
6911
0
            return presentation_type::int_hex;
6912
0
        case 'r':
6913
0
        case 'R':
6914
0
            return presentation_type::int_arbitrary_base;
6915
0
        case 'a':
6916
0
        case 'A':
6917
0
            return presentation_type::float_hex;
6918
0
        case 'e':
6919
0
        case 'E':
6920
0
            return presentation_type::float_scientific;
6921
0
        case 'f':
6922
0
        case 'F':
6923
0
            return presentation_type::float_fixed;
6924
0
        case 'g':
6925
0
        case 'G':
6926
0
            return presentation_type::float_general;
6927
4.05M
        case 's':
6928
4.05M
            return presentation_type::string;
6929
42.9k
        case 'c':
6930
42.9k
            return presentation_type::character;
6931
0
        case '?':
6932
0
            return presentation_type::escaped_character;
6933
0
        case 'p':
6934
0
            return presentation_type::pointer;
6935
0
        case '[':
6936
0
        case '/':
6937
            // Should be handled by parse_presentation_set and
6938
            // parse_presentation_regex
6939
0
            SCN_EXPECT(false);
6940
0
            SCN_UNREACHABLE;
6941
42.9k
        default:
6942
42.9k
            return presentation_type::none;
6943
4.14M
    }
6944
4.14M
}
scn::v4::detail::presentation_type scn::v4::detail::parse_presentation_type<char>(char)
Line
Count
Source
6896
385k
{
6897
385k
    switch (type) {
6898
0
        case 'b':
6899
0
        case 'B':
6900
0
            return presentation_type::int_binary;
6901
0
        case 'd':
6902
0
            return presentation_type::int_decimal;
6903
0
        case 'i':
6904
0
            return presentation_type::int_generic;
6905
0
        case 'u':
6906
0
            return presentation_type::int_unsigned_decimal;
6907
0
        case 'o':
6908
0
            return presentation_type::int_octal;
6909
0
        case 'x':
6910
0
        case 'X':
6911
0
            return presentation_type::int_hex;
6912
0
        case 'r':
6913
0
        case 'R':
6914
0
            return presentation_type::int_arbitrary_base;
6915
0
        case 'a':
6916
0
        case 'A':
6917
0
            return presentation_type::float_hex;
6918
0
        case 'e':
6919
0
        case 'E':
6920
0
            return presentation_type::float_scientific;
6921
0
        case 'f':
6922
0
        case 'F':
6923
0
            return presentation_type::float_fixed;
6924
0
        case 'g':
6925
0
        case 'G':
6926
0
            return presentation_type::float_general;
6927
357k
        case 's':
6928
357k
            return presentation_type::string;
6929
14.3k
        case 'c':
6930
14.3k
            return presentation_type::character;
6931
0
        case '?':
6932
0
            return presentation_type::escaped_character;
6933
0
        case 'p':
6934
0
            return presentation_type::pointer;
6935
0
        case '[':
6936
0
        case '/':
6937
            // Should be handled by parse_presentation_set and
6938
            // parse_presentation_regex
6939
0
            SCN_EXPECT(false);
6940
0
            SCN_UNREACHABLE;
6941
14.3k
        default:
6942
14.3k
            return presentation_type::none;
6943
385k
    }
6944
385k
}
scn::v4::detail::presentation_type scn::v4::detail::parse_presentation_type<wchar_t>(wchar_t)
Line
Count
Source
6896
3.75M
{
6897
3.75M
    switch (type) {
6898
0
        case 'b':
6899
0
        case 'B':
6900
0
            return presentation_type::int_binary;
6901
0
        case 'd':
6902
0
            return presentation_type::int_decimal;
6903
0
        case 'i':
6904
0
            return presentation_type::int_generic;
6905
0
        case 'u':
6906
0
            return presentation_type::int_unsigned_decimal;
6907
0
        case 'o':
6908
0
            return presentation_type::int_octal;
6909
0
        case 'x':
6910
0
        case 'X':
6911
0
            return presentation_type::int_hex;
6912
0
        case 'r':
6913
0
        case 'R':
6914
0
            return presentation_type::int_arbitrary_base;
6915
0
        case 'a':
6916
0
        case 'A':
6917
0
            return presentation_type::float_hex;
6918
0
        case 'e':
6919
0
        case 'E':
6920
0
            return presentation_type::float_scientific;
6921
0
        case 'f':
6922
0
        case 'F':
6923
0
            return presentation_type::float_fixed;
6924
0
        case 'g':
6925
0
        case 'G':
6926
0
            return presentation_type::float_general;
6927
3.69M
        case 's':
6928
3.69M
            return presentation_type::string;
6929
28.6k
        case 'c':
6930
28.6k
            return presentation_type::character;
6931
0
        case '?':
6932
0
            return presentation_type::escaped_character;
6933
0
        case 'p':
6934
0
            return presentation_type::pointer;
6935
0
        case '[':
6936
0
        case '/':
6937
            // Should be handled by parse_presentation_set and
6938
            // parse_presentation_regex
6939
0
            SCN_EXPECT(false);
6940
0
            SCN_UNREACHABLE;
6941
28.6k
        default:
6942
28.6k
            return presentation_type::none;
6943
3.75M
    }
6944
3.75M
}
6945
6946
template <typename CharT>
6947
constexpr bool is_ascii_letter(CharT ch)
6948
4.09M
{
6949
4.09M
    return (ch >= CharT{'a'} && ch <= CharT{'z'}) ||
6950
4.09M
           (ch >= CharT{'A'} && ch <= CharT{'Z'});
6951
4.09M
}
bool scn::v4::detail::is_ascii_letter<char>(char)
Line
Count
Source
6948
371k
{
6949
371k
    return (ch >= CharT{'a'} && ch <= CharT{'z'}) ||
6950
371k
           (ch >= CharT{'A'} && ch <= CharT{'Z'});
6951
371k
}
bool scn::v4::detail::is_ascii_letter<wchar_t>(wchar_t)
Line
Count
Source
6948
3.72M
{
6949
3.72M
    return (ch >= CharT{'a'} && ch <= CharT{'z'}) ||
6950
3.72M
           (ch >= CharT{'A'} && ch <= CharT{'Z'});
6951
3.72M
}
6952
6953
template <typename CharT>
6954
constexpr int code_point_length(const CharT* begin, const CharT* end)
6955
178k
{
6956
178k
    SCN_EXPECT(begin != end);
6957
178k
    if constexpr (sizeof(CharT) != 1) {
6958
115k
        return 1;
6959
    }
6960
63.5k
    else {
6961
63.5k
        const auto lengths =
6962
63.5k
            "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3"
6963
63.5k
            "\3\4";
6964
63.5k
        const int len = lengths[static_cast<unsigned char>(*begin) >> 3];
6965
63.5k
        return len;
6966
63.5k
    }
6967
178k
}
int scn::v4::detail::code_point_length<char>(char const*, char const*)
Line
Count
Source
6955
63.5k
{
6956
63.5k
    SCN_EXPECT(begin != end);
6957
    if constexpr (sizeof(CharT) != 1) {
6958
        return 1;
6959
    }
6960
63.5k
    else {
6961
63.5k
        const auto lengths =
6962
63.5k
            "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3"
6963
63.5k
            "\3\4";
6964
63.5k
        const int len = lengths[static_cast<unsigned char>(*begin) >> 3];
6965
63.5k
        return len;
6966
63.5k
    }
6967
63.5k
}
int scn::v4::detail::code_point_length<wchar_t>(wchar_t const*, wchar_t const*)
Line
Count
Source
6955
115k
{
6956
115k
    SCN_EXPECT(begin != end);
6957
115k
    if constexpr (sizeof(CharT) != 1) {
6958
115k
        return 1;
6959
    }
6960
    else {
6961
        const auto lengths =
6962
            "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3"
6963
            "\3\4";
6964
        const int len = lengths[static_cast<unsigned char>(*begin) >> 3];
6965
        return len;
6966
    }
6967
115k
}
6968
6969
template <typename CharT, typename Handler>
6970
constexpr const CharT* parse_align(const CharT* begin,
6971
                                   const CharT* end,
6972
                                   Handler&& handler)
6973
178k
{
6974
178k
    SCN_EXPECT(begin != end);
6975
6976
357k
    auto check_align = [](wchar_t ch) {
6977
357k
        switch (ch) {
6978
0
            case L'<':
6979
0
                return align_type::left;
6980
0
            case L'>':
6981
0
                return align_type::right;
6982
0
            case L'^':
6983
0
                return align_type::center;
6984
357k
            default:
6985
357k
                return align_type::none;
6986
357k
        }
6987
357k
    };
impl.cpp:scn::v4::detail::parse_align<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
6976
84.7k
    auto check_align = [](wchar_t ch) {
6977
84.7k
        switch (ch) {
6978
0
            case L'<':
6979
0
                return align_type::left;
6980
0
            case L'>':
6981
0
                return align_type::right;
6982
0
            case L'^':
6983
0
                return align_type::center;
6984
84.7k
            default:
6985
84.7k
                return align_type::none;
6986
84.7k
        }
6987
84.7k
    };
impl.cpp:scn::v4::detail::parse_align<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
6976
42.3k
    auto check_align = [](wchar_t ch) {
6977
42.3k
        switch (ch) {
6978
0
            case L'<':
6979
0
                return align_type::left;
6980
0
            case L'>':
6981
0
                return align_type::right;
6982
0
            case L'^':
6983
0
                return align_type::center;
6984
42.3k
            default:
6985
42.3k
                return align_type::none;
6986
42.3k
        }
6987
42.3k
    };
impl.cpp:scn::v4::detail::parse_align<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
6976
153k
    auto check_align = [](wchar_t ch) {
6977
153k
        switch (ch) {
6978
0
            case L'<':
6979
0
                return align_type::left;
6980
0
            case L'>':
6981
0
                return align_type::right;
6982
0
            case L'^':
6983
0
                return align_type::center;
6984
153k
            default:
6985
153k
                return align_type::none;
6986
153k
        }
6987
153k
    };
impl.cpp:scn::v4::detail::parse_align<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
6976
76.8k
    auto check_align = [](wchar_t ch) {
6977
76.8k
        switch (ch) {
6978
0
            case L'<':
6979
0
                return align_type::left;
6980
0
            case L'>':
6981
0
                return align_type::right;
6982
0
            case L'^':
6983
0
                return align_type::center;
6984
76.8k
            default:
6985
76.8k
                return align_type::none;
6986
76.8k
        }
6987
76.8k
    };
6988
6989
178k
    auto potential_fill_len = code_point_length(begin, end);
6990
178k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
6991
178k
                     std::distance(begin, end) < potential_fill_len)) {
6992
0
        handler.on_error("Invalid encoding in fill character");
6993
0
        return begin;
6994
0
    }
6995
6996
178k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
6997
6998
178k
    auto potential_fill = std::basic_string_view<CharT>{
6999
178k
        begin, static_cast<size_t>(potential_fill_len)};
7000
178k
    const auto begin_before_fill = begin;
7001
178k
    begin += potential_fill_len;
7002
7003
178k
    if (begin == end) {
7004
0
        return begin_before_fill;
7005
0
    }
7006
7007
178k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
7008
178k
    const auto begin_after_fill = begin;
7009
178k
    ++begin;
7010
7011
178k
    if (potential_fill_len == 1) {
7012
178k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
7013
0
            handler.on_error("Invalid fill character '{' in format string");
7014
0
            return begin;
7015
0
        }
7016
178k
        if (potential_fill[0] == '[') {
7017
50.0k
            return begin_before_fill;
7018
50.0k
        }
7019
178k
    }
7020
7021
128k
    if (potential_align_after_fill == align_type::none) {
7022
128k
        if (potential_align_on_fill != align_type::none) {
7023
0
            handler.on_align(potential_align_on_fill);
7024
0
            return begin_after_fill;
7025
0
        }
7026
128k
        return begin_before_fill;
7027
128k
    }
7028
7029
0
    handler.on_fill(potential_fill);
7030
0
    handler.on_align(potential_align_after_fill);
7031
0
    return begin;
7032
128k
}
impl.cpp:char const* scn::v4::detail::parse_align<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
6973
42.3k
{
6974
42.3k
    SCN_EXPECT(begin != end);
6975
6976
42.3k
    auto check_align = [](wchar_t ch) {
6977
42.3k
        switch (ch) {
6978
42.3k
            case L'<':
6979
42.3k
                return align_type::left;
6980
42.3k
            case L'>':
6981
42.3k
                return align_type::right;
6982
42.3k
            case L'^':
6983
42.3k
                return align_type::center;
6984
42.3k
            default:
6985
42.3k
                return align_type::none;
6986
42.3k
        }
6987
42.3k
    };
6988
6989
42.3k
    auto potential_fill_len = code_point_length(begin, end);
6990
42.3k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
6991
42.3k
                     std::distance(begin, end) < potential_fill_len)) {
6992
0
        handler.on_error("Invalid encoding in fill character");
6993
0
        return begin;
6994
0
    }
6995
6996
42.3k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
6997
6998
42.3k
    auto potential_fill = std::basic_string_view<CharT>{
6999
42.3k
        begin, static_cast<size_t>(potential_fill_len)};
7000
42.3k
    const auto begin_before_fill = begin;
7001
42.3k
    begin += potential_fill_len;
7002
7003
42.3k
    if (begin == end) {
7004
0
        return begin_before_fill;
7005
0
    }
7006
7007
42.3k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
7008
42.3k
    const auto begin_after_fill = begin;
7009
42.3k
    ++begin;
7010
7011
42.3k
    if (potential_fill_len == 1) {
7012
42.3k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
7013
0
            handler.on_error("Invalid fill character '{' in format string");
7014
0
            return begin;
7015
0
        }
7016
42.3k
        if (potential_fill[0] == '[') {
7017
13.7k
            return begin_before_fill;
7018
13.7k
        }
7019
42.3k
    }
7020
7021
28.6k
    if (potential_align_after_fill == align_type::none) {
7022
28.6k
        if (potential_align_on_fill != align_type::none) {
7023
0
            handler.on_align(potential_align_on_fill);
7024
0
            return begin_after_fill;
7025
0
        }
7026
28.6k
        return begin_before_fill;
7027
28.6k
    }
7028
7029
0
    handler.on_fill(potential_fill);
7030
0
    handler.on_align(potential_align_after_fill);
7031
0
    return begin;
7032
28.6k
}
impl.cpp:char const* scn::v4::detail::parse_align<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Line
Count
Source
6973
21.1k
{
6974
21.1k
    SCN_EXPECT(begin != end);
6975
6976
21.1k
    auto check_align = [](wchar_t ch) {
6977
21.1k
        switch (ch) {
6978
21.1k
            case L'<':
6979
21.1k
                return align_type::left;
6980
21.1k
            case L'>':
6981
21.1k
                return align_type::right;
6982
21.1k
            case L'^':
6983
21.1k
                return align_type::center;
6984
21.1k
            default:
6985
21.1k
                return align_type::none;
6986
21.1k
        }
6987
21.1k
    };
6988
6989
21.1k
    auto potential_fill_len = code_point_length(begin, end);
6990
21.1k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
6991
21.1k
                     std::distance(begin, end) < potential_fill_len)) {
6992
0
        handler.on_error("Invalid encoding in fill character");
6993
0
        return begin;
6994
0
    }
6995
6996
21.1k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
6997
6998
21.1k
    auto potential_fill = std::basic_string_view<CharT>{
6999
21.1k
        begin, static_cast<size_t>(potential_fill_len)};
7000
21.1k
    const auto begin_before_fill = begin;
7001
21.1k
    begin += potential_fill_len;
7002
7003
21.1k
    if (begin == end) {
7004
0
        return begin_before_fill;
7005
0
    }
7006
7007
21.1k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
7008
21.1k
    const auto begin_after_fill = begin;
7009
21.1k
    ++begin;
7010
7011
21.1k
    if (potential_fill_len == 1) {
7012
21.1k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
7013
0
            handler.on_error("Invalid fill character '{' in format string");
7014
0
            return begin;
7015
0
        }
7016
21.1k
        if (potential_fill[0] == '[') {
7017
6.87k
            return begin_before_fill;
7018
6.87k
        }
7019
21.1k
    }
7020
7021
14.3k
    if (potential_align_after_fill == align_type::none) {
7022
14.3k
        if (potential_align_on_fill != align_type::none) {
7023
0
            handler.on_align(potential_align_on_fill);
7024
0
            return begin_after_fill;
7025
0
        }
7026
14.3k
        return begin_before_fill;
7027
14.3k
    }
7028
7029
0
    handler.on_fill(potential_fill);
7030
0
    handler.on_align(potential_align_after_fill);
7031
0
    return begin;
7032
14.3k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_align<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
6973
76.8k
{
6974
76.8k
    SCN_EXPECT(begin != end);
6975
6976
76.8k
    auto check_align = [](wchar_t ch) {
6977
76.8k
        switch (ch) {
6978
76.8k
            case L'<':
6979
76.8k
                return align_type::left;
6980
76.8k
            case L'>':
6981
76.8k
                return align_type::right;
6982
76.8k
            case L'^':
6983
76.8k
                return align_type::center;
6984
76.8k
            default:
6985
76.8k
                return align_type::none;
6986
76.8k
        }
6987
76.8k
    };
6988
6989
76.8k
    auto potential_fill_len = code_point_length(begin, end);
6990
76.8k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
6991
76.8k
                     std::distance(begin, end) < potential_fill_len)) {
6992
0
        handler.on_error("Invalid encoding in fill character");
6993
0
        return begin;
6994
0
    }
6995
6996
76.8k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
6997
6998
76.8k
    auto potential_fill = std::basic_string_view<CharT>{
6999
76.8k
        begin, static_cast<size_t>(potential_fill_len)};
7000
76.8k
    const auto begin_before_fill = begin;
7001
76.8k
    begin += potential_fill_len;
7002
7003
76.8k
    if (begin == end) {
7004
0
        return begin_before_fill;
7005
0
    }
7006
7007
76.8k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
7008
76.8k
    const auto begin_after_fill = begin;
7009
76.8k
    ++begin;
7010
7011
76.8k
    if (potential_fill_len == 1) {
7012
76.8k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
7013
0
            handler.on_error("Invalid fill character '{' in format string");
7014
0
            return begin;
7015
0
        }
7016
76.8k
        if (potential_fill[0] == '[') {
7017
19.6k
            return begin_before_fill;
7018
19.6k
        }
7019
76.8k
    }
7020
7021
57.2k
    if (potential_align_after_fill == align_type::none) {
7022
57.2k
        if (potential_align_on_fill != align_type::none) {
7023
0
            handler.on_align(potential_align_on_fill);
7024
0
            return begin_after_fill;
7025
0
        }
7026
57.2k
        return begin_before_fill;
7027
57.2k
    }
7028
7029
0
    handler.on_fill(potential_fill);
7030
0
    handler.on_align(potential_align_after_fill);
7031
0
    return begin;
7032
57.2k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_align<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
Line
Count
Source
6973
38.4k
{
6974
38.4k
    SCN_EXPECT(begin != end);
6975
6976
38.4k
    auto check_align = [](wchar_t ch) {
6977
38.4k
        switch (ch) {
6978
38.4k
            case L'<':
6979
38.4k
                return align_type::left;
6980
38.4k
            case L'>':
6981
38.4k
                return align_type::right;
6982
38.4k
            case L'^':
6983
38.4k
                return align_type::center;
6984
38.4k
            default:
6985
38.4k
                return align_type::none;
6986
38.4k
        }
6987
38.4k
    };
6988
6989
38.4k
    auto potential_fill_len = code_point_length(begin, end);
6990
38.4k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
6991
38.4k
                     std::distance(begin, end) < potential_fill_len)) {
6992
0
        handler.on_error("Invalid encoding in fill character");
6993
0
        return begin;
6994
0
    }
6995
6996
38.4k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
6997
6998
38.4k
    auto potential_fill = std::basic_string_view<CharT>{
6999
38.4k
        begin, static_cast<size_t>(potential_fill_len)};
7000
38.4k
    const auto begin_before_fill = begin;
7001
38.4k
    begin += potential_fill_len;
7002
7003
38.4k
    if (begin == end) {
7004
0
        return begin_before_fill;
7005
0
    }
7006
7007
38.4k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
7008
38.4k
    const auto begin_after_fill = begin;
7009
38.4k
    ++begin;
7010
7011
38.4k
    if (potential_fill_len == 1) {
7012
38.4k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
7013
0
            handler.on_error("Invalid fill character '{' in format string");
7014
0
            return begin;
7015
0
        }
7016
38.4k
        if (potential_fill[0] == '[') {
7017
9.80k
            return begin_before_fill;
7018
9.80k
        }
7019
38.4k
    }
7020
7021
28.6k
    if (potential_align_after_fill == align_type::none) {
7022
28.6k
        if (potential_align_on_fill != align_type::none) {
7023
0
            handler.on_align(potential_align_on_fill);
7024
0
            return begin_after_fill;
7025
0
        }
7026
28.6k
        return begin_before_fill;
7027
28.6k
    }
7028
7029
0
    handler.on_fill(potential_fill);
7030
0
    handler.on_align(potential_align_after_fill);
7031
0
    return begin;
7032
28.6k
}
7033
7034
template <typename CharT, typename Handler>
7035
constexpr const CharT* parse_width(const CharT* begin,
7036
                                   const CharT* end,
7037
                                   Handler&& handler)
7038
178k
{
7039
178k
    SCN_EXPECT(begin != end);
7040
7041
178k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7042
85.8k
        int width = parse_simple_int(begin, end);
7043
85.8k
        if (SCN_LIKELY(width != -1)) {
7044
85.8k
            handler.on_width(width);
7045
85.8k
        }
7046
0
        else {
7047
0
            handler.on_error("Invalid field width");
7048
0
            return begin;
7049
0
        }
7050
85.8k
    }
7051
178k
    return begin;
7052
178k
}
impl.cpp:char const* scn::v4::detail::parse_width<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7038
42.3k
{
7039
42.3k
    SCN_EXPECT(begin != end);
7040
7041
42.3k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7042
19.0k
        int width = parse_simple_int(begin, end);
7043
19.0k
        if (SCN_LIKELY(width != -1)) {
7044
19.0k
            handler.on_width(width);
7045
19.0k
        }
7046
0
        else {
7047
0
            handler.on_error("Invalid field width");
7048
0
            return begin;
7049
0
        }
7050
19.0k
    }
7051
42.3k
    return begin;
7052
42.3k
}
impl.cpp:char const* scn::v4::detail::parse_width<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Line
Count
Source
7038
21.1k
{
7039
21.1k
    SCN_EXPECT(begin != end);
7040
7041
21.1k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7042
9.54k
        int width = parse_simple_int(begin, end);
7043
9.54k
        if (SCN_LIKELY(width != -1)) {
7044
9.54k
            handler.on_width(width);
7045
9.54k
        }
7046
0
        else {
7047
0
            handler.on_error("Invalid field width");
7048
0
            return begin;
7049
0
        }
7050
9.54k
    }
7051
21.1k
    return begin;
7052
21.1k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_width<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7038
76.8k
{
7039
76.8k
    SCN_EXPECT(begin != end);
7040
7041
76.8k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7042
38.1k
        int width = parse_simple_int(begin, end);
7043
38.1k
        if (SCN_LIKELY(width != -1)) {
7044
38.1k
            handler.on_width(width);
7045
38.1k
        }
7046
0
        else {
7047
0
            handler.on_error("Invalid field width");
7048
0
            return begin;
7049
0
        }
7050
38.1k
    }
7051
76.8k
    return begin;
7052
76.8k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_width<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
Line
Count
Source
7038
38.4k
{
7039
38.4k
    SCN_EXPECT(begin != end);
7040
7041
38.4k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7042
19.0k
        int width = parse_simple_int(begin, end);
7043
19.0k
        if (SCN_LIKELY(width != -1)) {
7044
19.0k
            handler.on_width(width);
7045
19.0k
        }
7046
0
        else {
7047
0
            handler.on_error("Invalid field width");
7048
0
            return begin;
7049
0
        }
7050
19.0k
    }
7051
38.4k
    return begin;
7052
38.4k
}
7053
7054
template <typename CharT, typename Handler>
7055
constexpr const CharT* parse_precision(const CharT* begin,
7056
                                       const CharT* end,
7057
                                       Handler&& handler)
7058
0
{
7059
0
    SCN_EXPECT(begin != end);
7060
7061
0
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7062
0
        int prec = parse_simple_int(begin, end);
7063
0
        if (SCN_LIKELY(prec != -1)) {
7064
0
            handler.on_precision(prec);
7065
0
        }
7066
0
        else {
7067
0
            handler.on_error("Invalid field precision");
7068
0
            return begin;
7069
0
        }
7070
0
    }
7071
0
    return begin;
7072
0
}
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::parse_precision<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::parse_precision<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::parse_precision<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::parse_precision<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
7073
7074
template <typename CharT, typename SpecHandler>
7075
constexpr char32_t parse_presentation_set_code_point(const CharT*& begin,
7076
                                                     const CharT* end,
7077
                                                     SpecHandler&& handler)
7078
200k
{
7079
200k
    SCN_EXPECT(begin != end);
7080
7081
200k
    auto len = code_point_length_by_starting_code_unit(*begin);
7082
200k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
7083
0
        handler.on_error("Invalid encoding in format string");
7084
0
        return invalid_code_point;
7085
0
    }
7086
7087
200k
    const auto cp =
7088
200k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
7089
200k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7090
0
        handler.on_error("Invalid encoding in format string");
7091
0
        return invalid_code_point;
7092
0
    }
7093
7094
200k
    begin += len;
7095
200k
    return cp;
7096
200k
}
Unexecuted instantiation: char32_t scn::v4::detail::parse_presentation_set_code_point<char, scn::v4::impl::nonascii_specs_handler&>(char const*&, char const*, scn::v4::impl::nonascii_specs_handler&)
Unexecuted instantiation: char32_t scn::v4::detail::parse_presentation_set_code_point<wchar_t, scn::v4::impl::nonascii_specs_handler&>(wchar_t const*&, wchar_t const*, scn::v4::impl::nonascii_specs_handler&)
impl.cpp:char32_t scn::v4::detail::parse_presentation_set_code_point<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7078
54.9k
{
7079
54.9k
    SCN_EXPECT(begin != end);
7080
7081
54.9k
    auto len = code_point_length_by_starting_code_unit(*begin);
7082
54.9k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
7083
0
        handler.on_error("Invalid encoding in format string");
7084
0
        return invalid_code_point;
7085
0
    }
7086
7087
54.9k
    const auto cp =
7088
54.9k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
7089
54.9k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7090
0
        handler.on_error("Invalid encoding in format string");
7091
0
        return invalid_code_point;
7092
0
    }
7093
7094
54.9k
    begin += len;
7095
54.9k
    return cp;
7096
54.9k
}
impl.cpp:char32_t scn::v4::detail::parse_presentation_set_code_point<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Line
Count
Source
7078
27.4k
{
7079
27.4k
    SCN_EXPECT(begin != end);
7080
7081
27.4k
    auto len = code_point_length_by_starting_code_unit(*begin);
7082
27.4k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
7083
0
        handler.on_error("Invalid encoding in format string");
7084
0
        return invalid_code_point;
7085
0
    }
7086
7087
27.4k
    const auto cp =
7088
27.4k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
7089
27.4k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7090
0
        handler.on_error("Invalid encoding in format string");
7091
0
        return invalid_code_point;
7092
0
    }
7093
7094
27.4k
    begin += len;
7095
27.4k
    return cp;
7096
27.4k
}
impl.cpp:char32_t scn::v4::detail::parse_presentation_set_code_point<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7078
78.4k
{
7079
78.4k
    SCN_EXPECT(begin != end);
7080
7081
78.4k
    auto len = code_point_length_by_starting_code_unit(*begin);
7082
78.4k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
7083
0
        handler.on_error("Invalid encoding in format string");
7084
0
        return invalid_code_point;
7085
0
    }
7086
7087
78.4k
    const auto cp =
7088
78.4k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
7089
78.4k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7090
0
        handler.on_error("Invalid encoding in format string");
7091
0
        return invalid_code_point;
7092
0
    }
7093
7094
78.4k
    begin += len;
7095
78.4k
    return cp;
7096
78.4k
}
impl.cpp:char32_t scn::v4::detail::parse_presentation_set_code_point<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
Line
Count
Source
7078
39.2k
{
7079
39.2k
    SCN_EXPECT(begin != end);
7080
7081
39.2k
    auto len = code_point_length_by_starting_code_unit(*begin);
7082
39.2k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
7083
0
        handler.on_error("Invalid encoding in format string");
7084
0
        return invalid_code_point;
7085
0
    }
7086
7087
39.2k
    const auto cp =
7088
39.2k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
7089
39.2k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7090
0
        handler.on_error("Invalid encoding in format string");
7091
0
        return invalid_code_point;
7092
0
    }
7093
7094
39.2k
    begin += len;
7095
39.2k
    return cp;
7096
39.2k
}
7097
7098
template <typename CharT, typename SpecHandler>
7099
constexpr void parse_presentation_set_literal(const CharT*& begin,
7100
                                              const CharT* end,
7101
                                              SpecHandler&& handler)
7102
100k
{
7103
100k
    SCN_EXPECT(begin != end);
7104
7105
100k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
7106
100k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
7107
0
        return;
7108
0
    }
7109
7110
100k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
7111
100k
        *(begin + 1) != CharT{']'}) {
7112
100k
        ++begin;
7113
7114
100k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
7115
100k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
7116
0
            return;
7117
0
        }
7118
7119
100k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
7120
            // clang-format off
7121
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
7122
            // clang-format on
7123
0
            return;
7124
0
        }
7125
7126
100k
        handler.on_charset_range(cp_first, cp_second + 1);
7127
100k
        return;
7128
100k
    }
7129
7130
0
    handler.on_charset_single(cp_first);
7131
0
}
Unexecuted instantiation: void scn::v4::detail::parse_presentation_set_literal<char, scn::v4::impl::nonascii_specs_handler&>(char const*&, char const*, scn::v4::impl::nonascii_specs_handler&)
Unexecuted instantiation: void scn::v4::detail::parse_presentation_set_literal<wchar_t, scn::v4::impl::nonascii_specs_handler&>(wchar_t const*&, wchar_t const*, scn::v4::impl::nonascii_specs_handler&)
impl.cpp:void scn::v4::detail::parse_presentation_set_literal<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7102
27.4k
{
7103
27.4k
    SCN_EXPECT(begin != end);
7104
7105
27.4k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
7106
27.4k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
7107
0
        return;
7108
0
    }
7109
7110
27.4k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
7111
27.4k
        *(begin + 1) != CharT{']'}) {
7112
27.4k
        ++begin;
7113
7114
27.4k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
7115
27.4k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
7116
0
            return;
7117
0
        }
7118
7119
27.4k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
7120
            // clang-format off
7121
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
7122
            // clang-format on
7123
0
            return;
7124
0
        }
7125
7126
27.4k
        handler.on_charset_range(cp_first, cp_second + 1);
7127
27.4k
        return;
7128
27.4k
    }
7129
7130
0
    handler.on_charset_single(cp_first);
7131
0
}
impl.cpp:void scn::v4::detail::parse_presentation_set_literal<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Line
Count
Source
7102
13.7k
{
7103
13.7k
    SCN_EXPECT(begin != end);
7104
7105
13.7k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
7106
13.7k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
7107
0
        return;
7108
0
    }
7109
7110
13.7k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
7111
13.7k
        *(begin + 1) != CharT{']'}) {
7112
13.7k
        ++begin;
7113
7114
13.7k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
7115
13.7k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
7116
0
            return;
7117
0
        }
7118
7119
13.7k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
7120
            // clang-format off
7121
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
7122
            // clang-format on
7123
0
            return;
7124
0
        }
7125
7126
13.7k
        handler.on_charset_range(cp_first, cp_second + 1);
7127
13.7k
        return;
7128
13.7k
    }
7129
7130
0
    handler.on_charset_single(cp_first);
7131
0
}
impl.cpp:void scn::v4::detail::parse_presentation_set_literal<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7102
39.2k
{
7103
39.2k
    SCN_EXPECT(begin != end);
7104
7105
39.2k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
7106
39.2k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
7107
0
        return;
7108
0
    }
7109
7110
39.2k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
7111
39.2k
        *(begin + 1) != CharT{']'}) {
7112
39.2k
        ++begin;
7113
7114
39.2k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
7115
39.2k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
7116
0
            return;
7117
0
        }
7118
7119
39.2k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
7120
            // clang-format off
7121
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
7122
            // clang-format on
7123
0
            return;
7124
0
        }
7125
7126
39.2k
        handler.on_charset_range(cp_first, cp_second + 1);
7127
39.2k
        return;
7128
39.2k
    }
7129
7130
0
    handler.on_charset_single(cp_first);
7131
0
}
impl.cpp:void scn::v4::detail::parse_presentation_set_literal<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
Line
Count
Source
7102
19.6k
{
7103
19.6k
    SCN_EXPECT(begin != end);
7104
7105
19.6k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
7106
19.6k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
7107
0
        return;
7108
0
    }
7109
7110
19.6k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
7111
19.6k
        *(begin + 1) != CharT{']'}) {
7112
19.6k
        ++begin;
7113
7114
19.6k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
7115
19.6k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
7116
0
            return;
7117
0
        }
7118
7119
19.6k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
7120
            // clang-format off
7121
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
7122
            // clang-format on
7123
0
            return;
7124
0
        }
7125
7126
19.6k
        handler.on_charset_range(cp_first, cp_second + 1);
7127
19.6k
        return;
7128
19.6k
    }
7129
7130
0
    handler.on_charset_single(cp_first);
7131
0
}
7132
7133
template <typename CharT, typename SpecHandler>
7134
constexpr std::basic_string_view<CharT> parse_presentation_set(
7135
    const CharT*& begin,
7136
    const CharT* end,
7137
    SpecHandler&& handler)
7138
50.0k
{
7139
50.0k
    SCN_EXPECT(begin != end);
7140
50.0k
    SCN_EXPECT(*begin == CharT{'['});
7141
7142
50.0k
    auto start = begin;
7143
50.0k
    ++begin;
7144
7145
50.0k
    if (SCN_UNLIKELY(begin == end)) {
7146
        // clang-format off
7147
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
7148
        // clang-format on
7149
0
        return {};
7150
0
    }
7151
50.0k
    if (*begin == CharT{'^'}) {
7152
0
        handler.on_charset_inverted();
7153
0
        ++begin;
7154
0
        if (SCN_UNLIKELY(begin == end)) {
7155
            // clang-format off
7156
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
7157
            // clang-format on
7158
0
            return {};
7159
0
        }
7160
0
        if (*begin == CharT{']'}) {
7161
0
            handler.on_charset_single(char32_t{']'});
7162
0
            ++begin;
7163
0
        }
7164
0
    }
7165
50.0k
    else if (*begin == CharT{']'}) {
7166
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
7167
0
    }
7168
7169
150k
    while (begin != end) {
7170
150k
        if (SCN_UNLIKELY(!handler.get_error())) {
7171
0
            break;
7172
0
        }
7173
7174
150k
        if (*begin == CharT{']'}) {
7175
50.0k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
7176
50.0k
        }
7177
7178
100k
        parse_presentation_set_literal(begin, end, handler);
7179
100k
    }
7180
7181
0
    SCN_UNLIKELY_ATTR
7182
0
    handler.on_error("Invalid [character set] specifier in format string");
7183
0
    return {};
7184
50.0k
}
Unexecuted instantiation: std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::parse_presentation_set<char, scn::v4::impl::nonascii_specs_handler&>(char const*&, char const*, scn::v4::impl::nonascii_specs_handler&)
Unexecuted instantiation: std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::parse_presentation_set<wchar_t, scn::v4::impl::nonascii_specs_handler&>(wchar_t const*&, wchar_t const*, scn::v4::impl::nonascii_specs_handler&)
impl.cpp:std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::parse_presentation_set<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7138
13.7k
{
7139
13.7k
    SCN_EXPECT(begin != end);
7140
13.7k
    SCN_EXPECT(*begin == CharT{'['});
7141
7142
13.7k
    auto start = begin;
7143
13.7k
    ++begin;
7144
7145
13.7k
    if (SCN_UNLIKELY(begin == end)) {
7146
        // clang-format off
7147
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
7148
        // clang-format on
7149
0
        return {};
7150
0
    }
7151
13.7k
    if (*begin == CharT{'^'}) {
7152
0
        handler.on_charset_inverted();
7153
0
        ++begin;
7154
0
        if (SCN_UNLIKELY(begin == end)) {
7155
            // clang-format off
7156
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
7157
            // clang-format on
7158
0
            return {};
7159
0
        }
7160
0
        if (*begin == CharT{']'}) {
7161
0
            handler.on_charset_single(char32_t{']'});
7162
0
            ++begin;
7163
0
        }
7164
0
    }
7165
13.7k
    else if (*begin == CharT{']'}) {
7166
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
7167
0
    }
7168
7169
41.2k
    while (begin != end) {
7170
41.2k
        if (SCN_UNLIKELY(!handler.get_error())) {
7171
0
            break;
7172
0
        }
7173
7174
41.2k
        if (*begin == CharT{']'}) {
7175
13.7k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
7176
13.7k
        }
7177
7178
27.4k
        parse_presentation_set_literal(begin, end, handler);
7179
27.4k
    }
7180
7181
0
    SCN_UNLIKELY_ATTR
7182
0
    handler.on_error("Invalid [character set] specifier in format string");
7183
0
    return {};
7184
13.7k
}
impl.cpp:std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::parse_presentation_set<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Line
Count
Source
7138
6.87k
{
7139
6.87k
    SCN_EXPECT(begin != end);
7140
6.87k
    SCN_EXPECT(*begin == CharT{'['});
7141
7142
6.87k
    auto start = begin;
7143
6.87k
    ++begin;
7144
7145
6.87k
    if (SCN_UNLIKELY(begin == end)) {
7146
        // clang-format off
7147
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
7148
        // clang-format on
7149
0
        return {};
7150
0
    }
7151
6.87k
    if (*begin == CharT{'^'}) {
7152
0
        handler.on_charset_inverted();
7153
0
        ++begin;
7154
0
        if (SCN_UNLIKELY(begin == end)) {
7155
            // clang-format off
7156
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
7157
            // clang-format on
7158
0
            return {};
7159
0
        }
7160
0
        if (*begin == CharT{']'}) {
7161
0
            handler.on_charset_single(char32_t{']'});
7162
0
            ++begin;
7163
0
        }
7164
0
    }
7165
6.87k
    else if (*begin == CharT{']'}) {
7166
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
7167
0
    }
7168
7169
20.6k
    while (begin != end) {
7170
20.6k
        if (SCN_UNLIKELY(!handler.get_error())) {
7171
0
            break;
7172
0
        }
7173
7174
20.6k
        if (*begin == CharT{']'}) {
7175
6.87k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
7176
6.87k
        }
7177
7178
13.7k
        parse_presentation_set_literal(begin, end, handler);
7179
13.7k
    }
7180
7181
0
    SCN_UNLIKELY_ATTR
7182
0
    handler.on_error("Invalid [character set] specifier in format string");
7183
0
    return {};
7184
6.87k
}
impl.cpp:std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::parse_presentation_set<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7138
19.6k
{
7139
19.6k
    SCN_EXPECT(begin != end);
7140
19.6k
    SCN_EXPECT(*begin == CharT{'['});
7141
7142
19.6k
    auto start = begin;
7143
19.6k
    ++begin;
7144
7145
19.6k
    if (SCN_UNLIKELY(begin == end)) {
7146
        // clang-format off
7147
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
7148
        // clang-format on
7149
0
        return {};
7150
0
    }
7151
19.6k
    if (*begin == CharT{'^'}) {
7152
0
        handler.on_charset_inverted();
7153
0
        ++begin;
7154
0
        if (SCN_UNLIKELY(begin == end)) {
7155
            // clang-format off
7156
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
7157
            // clang-format on
7158
0
            return {};
7159
0
        }
7160
0
        if (*begin == CharT{']'}) {
7161
0
            handler.on_charset_single(char32_t{']'});
7162
0
            ++begin;
7163
0
        }
7164
0
    }
7165
19.6k
    else if (*begin == CharT{']'}) {
7166
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
7167
0
    }
7168
7169
58.8k
    while (begin != end) {
7170
58.8k
        if (SCN_UNLIKELY(!handler.get_error())) {
7171
0
            break;
7172
0
        }
7173
7174
58.8k
        if (*begin == CharT{']'}) {
7175
19.6k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
7176
19.6k
        }
7177
7178
39.2k
        parse_presentation_set_literal(begin, end, handler);
7179
39.2k
    }
7180
7181
0
    SCN_UNLIKELY_ATTR
7182
0
    handler.on_error("Invalid [character set] specifier in format string");
7183
0
    return {};
7184
19.6k
}
impl.cpp:std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::parse_presentation_set<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
Line
Count
Source
7138
9.80k
{
7139
9.80k
    SCN_EXPECT(begin != end);
7140
9.80k
    SCN_EXPECT(*begin == CharT{'['});
7141
7142
9.80k
    auto start = begin;
7143
9.80k
    ++begin;
7144
7145
9.80k
    if (SCN_UNLIKELY(begin == end)) {
7146
        // clang-format off
7147
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
7148
        // clang-format on
7149
0
        return {};
7150
0
    }
7151
9.80k
    if (*begin == CharT{'^'}) {
7152
0
        handler.on_charset_inverted();
7153
0
        ++begin;
7154
0
        if (SCN_UNLIKELY(begin == end)) {
7155
            // clang-format off
7156
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
7157
            // clang-format on
7158
0
            return {};
7159
0
        }
7160
0
        if (*begin == CharT{']'}) {
7161
0
            handler.on_charset_single(char32_t{']'});
7162
0
            ++begin;
7163
0
        }
7164
0
    }
7165
9.80k
    else if (*begin == CharT{']'}) {
7166
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
7167
0
    }
7168
7169
29.4k
    while (begin != end) {
7170
29.4k
        if (SCN_UNLIKELY(!handler.get_error())) {
7171
0
            break;
7172
0
        }
7173
7174
29.4k
        if (*begin == CharT{']'}) {
7175
9.80k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
7176
9.80k
        }
7177
7178
19.6k
        parse_presentation_set_literal(begin, end, handler);
7179
19.6k
    }
7180
7181
0
    SCN_UNLIKELY_ATTR
7182
0
    handler.on_error("Invalid [character set] specifier in format string");
7183
0
    return {};
7184
9.80k
}
7185
7186
template <typename CharT, typename SpecHandler>
7187
constexpr const CharT* parse_presentation_regex(const CharT*& begin,
7188
                                                const CharT* end,
7189
                                                SpecHandler&& handler)
7190
0
{
7191
0
#if !SCN_DISABLE_REGEX
7192
0
    SCN_EXPECT(begin != end);
7193
0
    SCN_EXPECT(*begin == CharT{'/'});
7194
7195
    if constexpr (!SCN_REGEX_SUPPORTS_WIDE_STRINGS &&
7196
                  std::is_same_v<CharT, wchar_t>) {
7197
        handler.on_error("Regex backend doesn't support wide strings as input");
7198
        return begin;
7199
    }
7200
7201
0
    auto start = begin;
7202
0
    ++begin;
7203
7204
0
    if (SCN_UNLIKELY(begin == end)) {
7205
0
        handler.on_error("Unexpected end of regex in format string");
7206
0
        return begin;
7207
0
    }
7208
7209
0
    handler.on_type(presentation_type::regex);
7210
0
    for (; begin != end; ++begin) {
7211
0
        if (*begin == CharT{'/'}) {
7212
0
            if (*(begin - 1) != CharT{'\\'}) {
7213
0
                break;
7214
0
            }
7215
0
            else {
7216
0
                handler.on_type(presentation_type::regex_escaped);
7217
0
            }
7218
0
        }
7219
0
    }
7220
0
    if (SCN_UNLIKELY(begin == end)) {
7221
0
        handler.on_error("Unexpected end of regex in format string");
7222
0
        return begin;
7223
0
    }
7224
7225
0
    auto regex_end = begin;
7226
0
    auto regex_pattern = make_string_view_from_pointers(start + 1, regex_end);
7227
0
    if (SCN_UNLIKELY(regex_pattern.empty())) {
7228
0
        handler.on_error("Invalid (empty) regex in format string");
7229
0
        return begin;
7230
0
    }
7231
0
    handler.on_regex_pattern(regex_pattern);
7232
0
    ++begin;
7233
7234
0
    if (SCN_UNLIKELY(begin == end)) {
7235
0
        handler.on_error("Unexpected end of regex in format string");
7236
0
        return begin;
7237
0
    }
7238
7239
0
    regex_flags flags{regex_flags::none};
7240
0
    constexpr std::array<std::pair<char, regex_flags>, 4> flag_map{
7241
0
        {{'m', regex_flags::multiline},
7242
0
         {'s', regex_flags::singleline},
7243
0
         {'i', regex_flags::nocase},
7244
0
         {'n', regex_flags::nocapture}}};
7245
0
    for (; begin != end; ++begin) {
7246
0
        if (*begin == CharT{'}'}) {
7247
0
            break;
7248
0
        }
7249
0
        bool found_flag = false;
7250
0
        for (auto flag : flag_map) {
7251
0
            if (static_cast<CharT>(flag.first) != *begin) {
7252
0
                continue;
7253
0
            }
7254
0
            if ((flags & flag.second) != regex_flags::none) {
7255
0
                handler.on_error("Flag set multiple times in regex");
7256
0
                return begin;
7257
0
            }
7258
0
#if SCN_REGEX_BACKEND == SCN_REGEX_BACKEND_STD
7259
0
            if (*begin == CharT{'s'}) {
7260
                // clang-format off
7261
0
                handler.on_error("/s flag for regex isn't supported by regex backend");
7262
                // clang-format on
7263
0
            }
7264
#if !SCN_HAS_STD_REGEX_MULTILINE
7265
            if (*begin == CharT{'m'}) {
7266
                // clang-format off
7267
                handler.on_error("/m flag for regex isn't supported by regex backend");
7268
                // clang-format on
7269
            }
7270
#endif
7271
0
#endif
7272
0
            flags |= flag.second;
7273
0
            found_flag = true;
7274
0
            break;
7275
0
        }
7276
0
        if (!found_flag) {
7277
0
            handler.on_error("Invalid flag in regex");
7278
0
            return begin;
7279
0
        }
7280
0
    }
7281
0
    handler.on_regex_flags(flags);
7282
7283
0
    if (SCN_UNLIKELY(begin == end)) {
7284
0
        handler.on_error("Unexpected end of regex in format string");
7285
0
        return begin;
7286
0
    }
7287
7288
0
    return begin;
7289
#else
7290
    handler.on_error("Regular expression support is disabled");
7291
    return {};
7292
#endif
7293
0
}
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::parse_presentation_regex<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::parse_presentation_regex<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::parse_presentation_regex<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::parse_presentation_regex<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
7294
7295
template <typename CharT, typename SpecHandler>
7296
constexpr const CharT* parse_format_specs(const CharT* begin,
7297
                                          const CharT* end,
7298
                                          SpecHandler&& handler)
7299
4.23M
{
7300
4.23M
    auto do_presentation = [&]() -> const CharT* {
7301
4.19M
        if (*begin == CharT{'['}) {
7302
50.0k
            auto set = parse_presentation_set(begin, end, handler);
7303
50.0k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7304
                // clang-format off
7305
0
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7306
                // clang-format on
7307
0
                return begin;
7308
0
            }
7309
50.0k
            handler.on_character_set_string(set);
7310
50.0k
            return begin;
7311
50.0k
        }
7312
4.14M
        if (*begin == CharT{'/'}) {
7313
0
            return parse_presentation_regex(begin, end, handler);
7314
0
        }
7315
4.14M
        presentation_type type = parse_presentation_type(*begin++);
7316
4.14M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7317
42.9k
            handler.on_error("Invalid type specifier in format string");
7318
42.9k
            return begin;
7319
42.9k
        }
7320
4.09M
        handler.on_type(type);
7321
4.09M
        return begin;
7322
4.14M
    };
impl.cpp:scn::v4::detail::parse_format_specs<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
7300
254k
    auto do_presentation = [&]() -> const CharT* {
7301
254k
        if (*begin == CharT{'['}) {
7302
13.7k
            auto set = parse_presentation_set(begin, end, handler);
7303
13.7k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7304
                // clang-format off
7305
0
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7306
                // clang-format on
7307
0
                return begin;
7308
0
            }
7309
13.7k
            handler.on_character_set_string(set);
7310
13.7k
            return begin;
7311
13.7k
        }
7312
240k
        if (*begin == CharT{'/'}) {
7313
0
            return parse_presentation_regex(begin, end, handler);
7314
0
        }
7315
240k
        presentation_type type = parse_presentation_type(*begin++);
7316
240k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7317
9.54k
            handler.on_error("Invalid type specifier in format string");
7318
9.54k
            return begin;
7319
9.54k
        }
7320
231k
        handler.on_type(type);
7321
231k
        return begin;
7322
240k
    };
impl.cpp:scn::v4::detail::parse_format_specs<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
7300
151k
    auto do_presentation = [&]() -> const CharT* {
7301
151k
        if (*begin == CharT{'['}) {
7302
6.87k
            auto set = parse_presentation_set(begin, end, handler);
7303
6.87k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7304
                // clang-format off
7305
0
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7306
                // clang-format on
7307
0
                return begin;
7308
0
            }
7309
6.87k
            handler.on_character_set_string(set);
7310
6.87k
            return begin;
7311
6.87k
        }
7312
144k
        if (*begin == CharT{'/'}) {
7313
0
            return parse_presentation_regex(begin, end, handler);
7314
0
        }
7315
144k
        presentation_type type = parse_presentation_type(*begin++);
7316
144k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7317
4.77k
            handler.on_error("Invalid type specifier in format string");
7318
4.77k
            return begin;
7319
4.77k
        }
7320
140k
        handler.on_type(type);
7321
140k
        return begin;
7322
144k
    };
impl.cpp:scn::v4::detail::parse_format_specs<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
7300
2.52M
    auto do_presentation = [&]() -> const CharT* {
7301
2.52M
        if (*begin == CharT{'['}) {
7302
19.6k
            auto set = parse_presentation_set(begin, end, handler);
7303
19.6k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7304
                // clang-format off
7305
0
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7306
                // clang-format on
7307
0
                return begin;
7308
0
            }
7309
19.6k
            handler.on_character_set_string(set);
7310
19.6k
            return begin;
7311
19.6k
        }
7312
2.50M
        if (*begin == CharT{'/'}) {
7313
0
            return parse_presentation_regex(begin, end, handler);
7314
0
        }
7315
2.50M
        presentation_type type = parse_presentation_type(*begin++);
7316
2.50M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7317
19.0k
            handler.on_error("Invalid type specifier in format string");
7318
19.0k
            return begin;
7319
19.0k
        }
7320
2.48M
        handler.on_type(type);
7321
2.48M
        return begin;
7322
2.50M
    };
impl.cpp:scn::v4::detail::parse_format_specs<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
7300
1.26M
    auto do_presentation = [&]() -> const CharT* {
7301
1.26M
        if (*begin == CharT{'['}) {
7302
9.80k
            auto set = parse_presentation_set(begin, end, handler);
7303
9.80k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7304
                // clang-format off
7305
0
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7306
                // clang-format on
7307
0
                return begin;
7308
0
            }
7309
9.80k
            handler.on_character_set_string(set);
7310
9.80k
            return begin;
7311
9.80k
        }
7312
1.25M
        if (*begin == CharT{'/'}) {
7313
0
            return parse_presentation_regex(begin, end, handler);
7314
0
        }
7315
1.25M
        presentation_type type = parse_presentation_type(*begin++);
7316
1.25M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7317
9.54k
            handler.on_error("Invalid type specifier in format string");
7318
9.54k
            return begin;
7319
9.54k
        }
7320
1.24M
        handler.on_type(type);
7321
1.24M
        return begin;
7322
1.25M
    };
7323
7324
4.23M
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
7325
4.23M
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
7326
4.05M
        return do_presentation();
7327
4.05M
    }
7328
7329
178k
    if (SCN_UNLIKELY(begin == end)) {
7330
0
        handler.on_error("Unexpected end of format string");
7331
0
        return begin;
7332
0
    }
7333
7334
178k
    begin = parse_align(begin, end, handler);
7335
178k
    if (SCN_UNLIKELY(begin == end)) {
7336
0
        handler.on_error("Unexpected end of format string");
7337
0
        return begin;
7338
0
    }
7339
7340
178k
    begin = parse_width(begin, end, handler);
7341
178k
    if (SCN_UNLIKELY(begin == end)) {
7342
0
        handler.on_error("Unexpected end of format string");
7343
0
        return begin;
7344
0
    }
7345
7346
178k
    if (*begin == CharT{'.'}) {
7347
0
        ++begin;
7348
0
        if (SCN_UNLIKELY(begin == end)) {
7349
0
            handler.on_error("Unexpected end of format string");
7350
0
            return begin;
7351
0
        }
7352
0
        begin = parse_precision(begin, end, handler);
7353
0
        if (SCN_UNLIKELY(begin == end)) {
7354
0
            handler.on_error("Unexpected end of format string");
7355
0
            return begin;
7356
0
        }
7357
0
    }
7358
7359
178k
    if (*begin == CharT{'L'}) {
7360
42.9k
        handler.on_localized();
7361
42.9k
        ++begin;
7362
42.9k
    }
7363
178k
    if (SCN_UNLIKELY(begin == end)) {
7364
0
        handler.on_error("Unexpected end of format string");
7365
0
        return begin;
7366
0
    }
7367
7368
178k
    if (begin != end && *begin != CharT{'}'}) {
7369
135k
        do_presentation();
7370
135k
    }
7371
178k
    if (SCN_UNLIKELY(begin == end)) {
7372
0
        handler.on_error("Unexpected end of format string");
7373
0
        return begin;
7374
0
    }
7375
7376
178k
    return begin;
7377
178k
}
impl.cpp:char const* scn::v4::detail::parse_format_specs<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7299
264k
{
7300
264k
    auto do_presentation = [&]() -> const CharT* {
7301
264k
        if (*begin == CharT{'['}) {
7302
264k
            auto set = parse_presentation_set(begin, end, handler);
7303
264k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7304
                // clang-format off
7305
264k
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7306
                // clang-format on
7307
264k
                return begin;
7308
264k
            }
7309
264k
            handler.on_character_set_string(set);
7310
264k
            return begin;
7311
264k
        }
7312
264k
        if (*begin == CharT{'/'}) {
7313
264k
            return parse_presentation_regex(begin, end, handler);
7314
264k
        }
7315
264k
        presentation_type type = parse_presentation_type(*begin++);
7316
264k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7317
264k
            handler.on_error("Invalid type specifier in format string");
7318
264k
            return begin;
7319
264k
        }
7320
264k
        handler.on_type(type);
7321
264k
        return begin;
7322
264k
    };
7323
7324
264k
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
7325
264k
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
7326
221k
        return do_presentation();
7327
221k
    }
7328
7329
42.3k
    if (SCN_UNLIKELY(begin == end)) {
7330
0
        handler.on_error("Unexpected end of format string");
7331
0
        return begin;
7332
0
    }
7333
7334
42.3k
    begin = parse_align(begin, end, handler);
7335
42.3k
    if (SCN_UNLIKELY(begin == end)) {
7336
0
        handler.on_error("Unexpected end of format string");
7337
0
        return begin;
7338
0
    }
7339
7340
42.3k
    begin = parse_width(begin, end, handler);
7341
42.3k
    if (SCN_UNLIKELY(begin == end)) {
7342
0
        handler.on_error("Unexpected end of format string");
7343
0
        return begin;
7344
0
    }
7345
7346
42.3k
    if (*begin == CharT{'.'}) {
7347
0
        ++begin;
7348
0
        if (SCN_UNLIKELY(begin == end)) {
7349
0
            handler.on_error("Unexpected end of format string");
7350
0
            return begin;
7351
0
        }
7352
0
        begin = parse_precision(begin, end, handler);
7353
0
        if (SCN_UNLIKELY(begin == end)) {
7354
0
            handler.on_error("Unexpected end of format string");
7355
0
            return begin;
7356
0
        }
7357
0
    }
7358
7359
42.3k
    if (*begin == CharT{'L'}) {
7360
9.54k
        handler.on_localized();
7361
9.54k
        ++begin;
7362
9.54k
    }
7363
42.3k
    if (SCN_UNLIKELY(begin == end)) {
7364
0
        handler.on_error("Unexpected end of format string");
7365
0
        return begin;
7366
0
    }
7367
7368
42.3k
    if (begin != end && *begin != CharT{'}'}) {
7369
32.8k
        do_presentation();
7370
32.8k
    }
7371
42.3k
    if (SCN_UNLIKELY(begin == end)) {
7372
0
        handler.on_error("Unexpected end of format string");
7373
0
        return begin;
7374
0
    }
7375
7376
42.3k
    return begin;
7377
42.3k
}
impl.cpp:char const* scn::v4::detail::parse_format_specs<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
Line
Count
Source
7299
156k
{
7300
156k
    auto do_presentation = [&]() -> const CharT* {
7301
156k
        if (*begin == CharT{'['}) {
7302
156k
            auto set = parse_presentation_set(begin, end, handler);
7303
156k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7304
                // clang-format off
7305
156k
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7306
                // clang-format on
7307
156k
                return begin;
7308
156k
            }
7309
156k
            handler.on_character_set_string(set);
7310
156k
            return begin;
7311
156k
        }
7312
156k
        if (*begin == CharT{'/'}) {
7313
156k
            return parse_presentation_regex(begin, end, handler);
7314
156k
        }
7315
156k
        presentation_type type = parse_presentation_type(*begin++);
7316
156k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7317
156k
            handler.on_error("Invalid type specifier in format string");
7318
156k
            return begin;
7319
156k
        }
7320
156k
        handler.on_type(type);
7321
156k
        return begin;
7322
156k
    };
7323
7324
156k
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
7325
156k
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
7326
135k
        return do_presentation();
7327
135k
    }
7328
7329
21.1k
    if (SCN_UNLIKELY(begin == end)) {
7330
0
        handler.on_error("Unexpected end of format string");
7331
0
        return begin;
7332
0
    }
7333
7334
21.1k
    begin = parse_align(begin, end, handler);
7335
21.1k
    if (SCN_UNLIKELY(begin == end)) {
7336
0
        handler.on_error("Unexpected end of format string");
7337
0
        return begin;
7338
0
    }
7339
7340
21.1k
    begin = parse_width(begin, end, handler);
7341
21.1k
    if (SCN_UNLIKELY(begin == end)) {
7342
0
        handler.on_error("Unexpected end of format string");
7343
0
        return begin;
7344
0
    }
7345
7346
21.1k
    if (*begin == CharT{'.'}) {
7347
0
        ++begin;
7348
0
        if (SCN_UNLIKELY(begin == end)) {
7349
0
            handler.on_error("Unexpected end of format string");
7350
0
            return begin;
7351
0
        }
7352
0
        begin = parse_precision(begin, end, handler);
7353
0
        if (SCN_UNLIKELY(begin == end)) {
7354
0
            handler.on_error("Unexpected end of format string");
7355
0
            return begin;
7356
0
        }
7357
0
    }
7358
7359
21.1k
    if (*begin == CharT{'L'}) {
7360
4.77k
        handler.on_localized();
7361
4.77k
        ++begin;
7362
4.77k
    }
7363
21.1k
    if (SCN_UNLIKELY(begin == end)) {
7364
0
        handler.on_error("Unexpected end of format string");
7365
0
        return begin;
7366
0
    }
7367
7368
21.1k
    if (begin != end && *begin != CharT{'}'}) {
7369
16.4k
        do_presentation();
7370
16.4k
    }
7371
21.1k
    if (SCN_UNLIKELY(begin == end)) {
7372
0
        handler.on_error("Unexpected end of format string");
7373
0
        return begin;
7374
0
    }
7375
7376
21.1k
    return begin;
7377
21.1k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_format_specs<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7299
2.54M
{
7300
2.54M
    auto do_presentation = [&]() -> const CharT* {
7301
2.54M
        if (*begin == CharT{'['}) {
7302
2.54M
            auto set = parse_presentation_set(begin, end, handler);
7303
2.54M
            if (SCN_UNLIKELY(set.size() <= 2)) {
7304
                // clang-format off
7305
2.54M
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7306
                // clang-format on
7307
2.54M
                return begin;
7308
2.54M
            }
7309
2.54M
            handler.on_character_set_string(set);
7310
2.54M
            return begin;
7311
2.54M
        }
7312
2.54M
        if (*begin == CharT{'/'}) {
7313
2.54M
            return parse_presentation_regex(begin, end, handler);
7314
2.54M
        }
7315
2.54M
        presentation_type type = parse_presentation_type(*begin++);
7316
2.54M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7317
2.54M
            handler.on_error("Invalid type specifier in format string");
7318
2.54M
            return begin;
7319
2.54M
        }
7320
2.54M
        handler.on_type(type);
7321
2.54M
        return begin;
7322
2.54M
    };
7323
7324
2.54M
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
7325
2.54M
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
7326
2.46M
        return do_presentation();
7327
2.46M
    }
7328
7329
76.8k
    if (SCN_UNLIKELY(begin == end)) {
7330
0
        handler.on_error("Unexpected end of format string");
7331
0
        return begin;
7332
0
    }
7333
7334
76.8k
    begin = parse_align(begin, end, handler);
7335
76.8k
    if (SCN_UNLIKELY(begin == end)) {
7336
0
        handler.on_error("Unexpected end of format string");
7337
0
        return begin;
7338
0
    }
7339
7340
76.8k
    begin = parse_width(begin, end, handler);
7341
76.8k
    if (SCN_UNLIKELY(begin == end)) {
7342
0
        handler.on_error("Unexpected end of format string");
7343
0
        return begin;
7344
0
    }
7345
7346
76.8k
    if (*begin == CharT{'.'}) {
7347
0
        ++begin;
7348
0
        if (SCN_UNLIKELY(begin == end)) {
7349
0
            handler.on_error("Unexpected end of format string");
7350
0
            return begin;
7351
0
        }
7352
0
        begin = parse_precision(begin, end, handler);
7353
0
        if (SCN_UNLIKELY(begin == end)) {
7354
0
            handler.on_error("Unexpected end of format string");
7355
0
            return begin;
7356
0
        }
7357
0
    }
7358
7359
76.8k
    if (*begin == CharT{'L'}) {
7360
19.0k
        handler.on_localized();
7361
19.0k
        ++begin;
7362
19.0k
    }
7363
76.8k
    if (SCN_UNLIKELY(begin == end)) {
7364
0
        handler.on_error("Unexpected end of format string");
7365
0
        return begin;
7366
0
    }
7367
7368
76.8k
    if (begin != end && *begin != CharT{'}'}) {
7369
57.7k
        do_presentation();
7370
57.7k
    }
7371
76.8k
    if (SCN_UNLIKELY(begin == end)) {
7372
0
        handler.on_error("Unexpected end of format string");
7373
0
        return begin;
7374
0
    }
7375
7376
76.8k
    return begin;
7377
76.8k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_format_specs<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
Line
Count
Source
7299
1.27M
{
7300
1.27M
    auto do_presentation = [&]() -> const CharT* {
7301
1.27M
        if (*begin == CharT{'['}) {
7302
1.27M
            auto set = parse_presentation_set(begin, end, handler);
7303
1.27M
            if (SCN_UNLIKELY(set.size() <= 2)) {
7304
                // clang-format off
7305
1.27M
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7306
                // clang-format on
7307
1.27M
                return begin;
7308
1.27M
            }
7309
1.27M
            handler.on_character_set_string(set);
7310
1.27M
            return begin;
7311
1.27M
        }
7312
1.27M
        if (*begin == CharT{'/'}) {
7313
1.27M
            return parse_presentation_regex(begin, end, handler);
7314
1.27M
        }
7315
1.27M
        presentation_type type = parse_presentation_type(*begin++);
7316
1.27M
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7317
1.27M
            handler.on_error("Invalid type specifier in format string");
7318
1.27M
            return begin;
7319
1.27M
        }
7320
1.27M
        handler.on_type(type);
7321
1.27M
        return begin;
7322
1.27M
    };
7323
7324
1.27M
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
7325
1.27M
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
7326
1.23M
        return do_presentation();
7327
1.23M
    }
7328
7329
38.4k
    if (SCN_UNLIKELY(begin == end)) {
7330
0
        handler.on_error("Unexpected end of format string");
7331
0
        return begin;
7332
0
    }
7333
7334
38.4k
    begin = parse_align(begin, end, handler);
7335
38.4k
    if (SCN_UNLIKELY(begin == end)) {
7336
0
        handler.on_error("Unexpected end of format string");
7337
0
        return begin;
7338
0
    }
7339
7340
38.4k
    begin = parse_width(begin, end, handler);
7341
38.4k
    if (SCN_UNLIKELY(begin == end)) {
7342
0
        handler.on_error("Unexpected end of format string");
7343
0
        return begin;
7344
0
    }
7345
7346
38.4k
    if (*begin == CharT{'.'}) {
7347
0
        ++begin;
7348
0
        if (SCN_UNLIKELY(begin == end)) {
7349
0
            handler.on_error("Unexpected end of format string");
7350
0
            return begin;
7351
0
        }
7352
0
        begin = parse_precision(begin, end, handler);
7353
0
        if (SCN_UNLIKELY(begin == end)) {
7354
0
            handler.on_error("Unexpected end of format string");
7355
0
            return begin;
7356
0
        }
7357
0
    }
7358
7359
38.4k
    if (*begin == CharT{'L'}) {
7360
9.54k
        handler.on_localized();
7361
9.54k
        ++begin;
7362
9.54k
    }
7363
38.4k
    if (SCN_UNLIKELY(begin == end)) {
7364
0
        handler.on_error("Unexpected end of format string");
7365
0
        return begin;
7366
0
    }
7367
7368
38.4k
    if (begin != end && *begin != CharT{'}'}) {
7369
28.8k
        do_presentation();
7370
28.8k
    }
7371
38.4k
    if (SCN_UNLIKELY(begin == end)) {
7372
0
        handler.on_error("Unexpected end of format string");
7373
0
        return begin;
7374
0
    }
7375
7376
38.4k
    return begin;
7377
38.4k
}
7378
7379
template <typename CharT, typename Handler>
7380
constexpr const CharT* parse_replacement_field(const CharT* begin,
7381
                                               const CharT* end,
7382
                                               Handler& handler)
7383
4.23M
{
7384
4.23M
    struct id_adapter {
7385
4.23M
        constexpr void operator()()
7386
4.23M
        {
7387
4.23M
            arg_id = handler.on_arg_id();
7388
4.23M
        }
impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)::id_adapter::operator()()
Line
Count
Source
7386
264k
        {
7387
264k
            arg_id = handler.on_arg_id();
7388
264k
        }
impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)::id_adapter::operator()()
Line
Count
Source
7386
156k
        {
7387
156k
            arg_id = handler.on_arg_id();
7388
156k
        }
impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter::operator()()
Line
Count
Source
7386
2.54M
        {
7387
2.54M
            arg_id = handler.on_arg_id();
7388
2.54M
        }
impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter::operator()()
Line
Count
Source
7386
1.27M
        {
7387
1.27M
            arg_id = handler.on_arg_id();
7388
1.27M
        }
7389
4.23M
        constexpr void operator()(std::size_t id)
7390
4.23M
        {
7391
0
            arg_id = handler.on_arg_id(id);
7392
0
        }
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)::id_adapter::operator()(unsigned long)
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)::id_adapter::operator()(unsigned long)
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter::operator()(unsigned long)
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter::operator()(unsigned long)
7393
7394
4.23M
        constexpr void on_error(const char* msg)
7395
4.23M
        {
7396
0
            SCN_UNLIKELY_ATTR
7397
0
            handler.on_error(msg);
7398
0
        }
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)::id_adapter::on_error(char const*)
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)::id_adapter::on_error(char const*)
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter::on_error(char const*)
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter::on_error(char const*)
7399
7400
4.23M
        Handler& handler;
7401
4.23M
        std::size_t arg_id;
7402
4.23M
    };
7403
7404
4.23M
    ++begin;
7405
4.23M
    if (SCN_UNLIKELY(begin == end)) {
7406
0
        handler.on_error("Unexpected end of replacement field");
7407
0
        return begin;
7408
0
    }
7409
7410
4.23M
    if (*begin == CharT{'}'}) {
7411
0
        handler.on_replacement_field(handler.on_arg_id(), begin);
7412
0
    }
7413
4.23M
    else if (*begin == CharT{'{'}) {
7414
0
        handler.on_literal_text(begin, begin + 1);
7415
0
    }
7416
4.23M
    else {
7417
4.23M
        auto adapter = id_adapter{handler, 0};
7418
4.23M
        begin = parse_arg_id(begin, end, adapter);
7419
7420
4.23M
        if (SCN_UNLIKELY(begin == end)) {
7421
0
            handler.on_error("Missing '}' in format string");
7422
0
            return begin;
7423
0
        }
7424
7425
4.23M
        if (*begin == CharT{'}'}) {
7426
0
            handler.on_replacement_field(adapter.arg_id, begin);
7427
0
        }
7428
4.23M
        else if (*begin == CharT{':'}) {
7429
4.23M
            if (SCN_UNLIKELY(begin + 1 == end)) {
7430
0
                handler.on_error("Unexpected end of replacement field");
7431
0
                return begin;
7432
0
            }
7433
4.23M
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
7434
4.23M
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
7435
85.8k
                handler.on_error("Unknown format specifier");
7436
85.8k
                return begin;
7437
85.8k
            }
7438
4.23M
        }
7439
0
        else {
7440
0
            SCN_UNLIKELY_ATTR
7441
0
            handler.on_error("Missing '}' in format string");
7442
0
            return begin;
7443
0
        }
7444
4.23M
    }
7445
4.14M
    return begin + 1;
7446
4.23M
}
impl.cpp:char const* scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)
Line
Count
Source
7383
264k
{
7384
264k
    struct id_adapter {
7385
264k
        constexpr void operator()()
7386
264k
        {
7387
264k
            arg_id = handler.on_arg_id();
7388
264k
        }
7389
264k
        constexpr void operator()(std::size_t id)
7390
264k
        {
7391
264k
            arg_id = handler.on_arg_id(id);
7392
264k
        }
7393
7394
264k
        constexpr void on_error(const char* msg)
7395
264k
        {
7396
264k
            SCN_UNLIKELY_ATTR
7397
264k
            handler.on_error(msg);
7398
264k
        }
7399
7400
264k
        Handler& handler;
7401
264k
        std::size_t arg_id;
7402
264k
    };
7403
7404
264k
    ++begin;
7405
264k
    if (SCN_UNLIKELY(begin == end)) {
7406
0
        handler.on_error("Unexpected end of replacement field");
7407
0
        return begin;
7408
0
    }
7409
7410
264k
    if (*begin == CharT{'}'}) {
7411
0
        handler.on_replacement_field(handler.on_arg_id(), begin);
7412
0
    }
7413
264k
    else if (*begin == CharT{'{'}) {
7414
0
        handler.on_literal_text(begin, begin + 1);
7415
0
    }
7416
264k
    else {
7417
264k
        auto adapter = id_adapter{handler, 0};
7418
264k
        begin = parse_arg_id(begin, end, adapter);
7419
7420
264k
        if (SCN_UNLIKELY(begin == end)) {
7421
0
            handler.on_error("Missing '}' in format string");
7422
0
            return begin;
7423
0
        }
7424
7425
264k
        if (*begin == CharT{'}'}) {
7426
0
            handler.on_replacement_field(adapter.arg_id, begin);
7427
0
        }
7428
264k
        else if (*begin == CharT{':'}) {
7429
264k
            if (SCN_UNLIKELY(begin + 1 == end)) {
7430
0
                handler.on_error("Unexpected end of replacement field");
7431
0
                return begin;
7432
0
            }
7433
264k
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
7434
264k
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
7435
19.0k
                handler.on_error("Unknown format specifier");
7436
19.0k
                return begin;
7437
19.0k
            }
7438
264k
        }
7439
0
        else {
7440
0
            SCN_UNLIKELY_ATTR
7441
0
            handler.on_error("Missing '}' in format string");
7442
0
            return begin;
7443
0
        }
7444
264k
    }
7445
245k
    return begin + 1;
7446
264k
}
impl.cpp:char const* scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)
Line
Count
Source
7383
156k
{
7384
156k
    struct id_adapter {
7385
156k
        constexpr void operator()()
7386
156k
        {
7387
156k
            arg_id = handler.on_arg_id();
7388
156k
        }
7389
156k
        constexpr void operator()(std::size_t id)
7390
156k
        {
7391
156k
            arg_id = handler.on_arg_id(id);
7392
156k
        }
7393
7394
156k
        constexpr void on_error(const char* msg)
7395
156k
        {
7396
156k
            SCN_UNLIKELY_ATTR
7397
156k
            handler.on_error(msg);
7398
156k
        }
7399
7400
156k
        Handler& handler;
7401
156k
        std::size_t arg_id;
7402
156k
    };
7403
7404
156k
    ++begin;
7405
156k
    if (SCN_UNLIKELY(begin == end)) {
7406
0
        handler.on_error("Unexpected end of replacement field");
7407
0
        return begin;
7408
0
    }
7409
7410
156k
    if (*begin == CharT{'}'}) {
7411
0
        handler.on_replacement_field(handler.on_arg_id(), begin);
7412
0
    }
7413
156k
    else if (*begin == CharT{'{'}) {
7414
0
        handler.on_literal_text(begin, begin + 1);
7415
0
    }
7416
156k
    else {
7417
156k
        auto adapter = id_adapter{handler, 0};
7418
156k
        begin = parse_arg_id(begin, end, adapter);
7419
7420
156k
        if (SCN_UNLIKELY(begin == end)) {
7421
0
            handler.on_error("Missing '}' in format string");
7422
0
            return begin;
7423
0
        }
7424
7425
156k
        if (*begin == CharT{'}'}) {
7426
0
            handler.on_replacement_field(adapter.arg_id, begin);
7427
0
        }
7428
156k
        else if (*begin == CharT{':'}) {
7429
156k
            if (SCN_UNLIKELY(begin + 1 == end)) {
7430
0
                handler.on_error("Unexpected end of replacement field");
7431
0
                return begin;
7432
0
            }
7433
156k
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
7434
156k
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
7435
9.54k
                handler.on_error("Unknown format specifier");
7436
9.54k
                return begin;
7437
9.54k
            }
7438
156k
        }
7439
0
        else {
7440
0
            SCN_UNLIKELY_ATTR
7441
0
            handler.on_error("Missing '}' in format string");
7442
0
            return begin;
7443
0
        }
7444
156k
    }
7445
146k
    return begin + 1;
7446
156k
}
impl.cpp:wchar_t const* scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)
Line
Count
Source
7383
2.54M
{
7384
2.54M
    struct id_adapter {
7385
2.54M
        constexpr void operator()()
7386
2.54M
        {
7387
2.54M
            arg_id = handler.on_arg_id();
7388
2.54M
        }
7389
2.54M
        constexpr void operator()(std::size_t id)
7390
2.54M
        {
7391
2.54M
            arg_id = handler.on_arg_id(id);
7392
2.54M
        }
7393
7394
2.54M
        constexpr void on_error(const char* msg)
7395
2.54M
        {
7396
2.54M
            SCN_UNLIKELY_ATTR
7397
2.54M
            handler.on_error(msg);
7398
2.54M
        }
7399
7400
2.54M
        Handler& handler;
7401
2.54M
        std::size_t arg_id;
7402
2.54M
    };
7403
7404
2.54M
    ++begin;
7405
2.54M
    if (SCN_UNLIKELY(begin == end)) {
7406
0
        handler.on_error("Unexpected end of replacement field");
7407
0
        return begin;
7408
0
    }
7409
7410
2.54M
    if (*begin == CharT{'}'}) {
7411
0
        handler.on_replacement_field(handler.on_arg_id(), begin);
7412
0
    }
7413
2.54M
    else if (*begin == CharT{'{'}) {
7414
0
        handler.on_literal_text(begin, begin + 1);
7415
0
    }
7416
2.54M
    else {
7417
2.54M
        auto adapter = id_adapter{handler, 0};
7418
2.54M
        begin = parse_arg_id(begin, end, adapter);
7419
7420
2.54M
        if (SCN_UNLIKELY(begin == end)) {
7421
0
            handler.on_error("Missing '}' in format string");
7422
0
            return begin;
7423
0
        }
7424
7425
2.54M
        if (*begin == CharT{'}'}) {
7426
0
            handler.on_replacement_field(adapter.arg_id, begin);
7427
0
        }
7428
2.54M
        else if (*begin == CharT{':'}) {
7429
2.54M
            if (SCN_UNLIKELY(begin + 1 == end)) {
7430
0
                handler.on_error("Unexpected end of replacement field");
7431
0
                return begin;
7432
0
            }
7433
2.54M
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
7434
2.54M
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
7435
38.1k
                handler.on_error("Unknown format specifier");
7436
38.1k
                return begin;
7437
38.1k
            }
7438
2.54M
        }
7439
0
        else {
7440
0
            SCN_UNLIKELY_ATTR
7441
0
            handler.on_error("Missing '}' in format string");
7442
0
            return begin;
7443
0
        }
7444
2.54M
    }
7445
2.50M
    return begin + 1;
7446
2.54M
}
impl.cpp:wchar_t const* scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)
Line
Count
Source
7383
1.27M
{
7384
1.27M
    struct id_adapter {
7385
1.27M
        constexpr void operator()()
7386
1.27M
        {
7387
1.27M
            arg_id = handler.on_arg_id();
7388
1.27M
        }
7389
1.27M
        constexpr void operator()(std::size_t id)
7390
1.27M
        {
7391
1.27M
            arg_id = handler.on_arg_id(id);
7392
1.27M
        }
7393
7394
1.27M
        constexpr void on_error(const char* msg)
7395
1.27M
        {
7396
1.27M
            SCN_UNLIKELY_ATTR
7397
1.27M
            handler.on_error(msg);
7398
1.27M
        }
7399
7400
1.27M
        Handler& handler;
7401
1.27M
        std::size_t arg_id;
7402
1.27M
    };
7403
7404
1.27M
    ++begin;
7405
1.27M
    if (SCN_UNLIKELY(begin == end)) {
7406
0
        handler.on_error("Unexpected end of replacement field");
7407
0
        return begin;
7408
0
    }
7409
7410
1.27M
    if (*begin == CharT{'}'}) {
7411
0
        handler.on_replacement_field(handler.on_arg_id(), begin);
7412
0
    }
7413
1.27M
    else if (*begin == CharT{'{'}) {
7414
0
        handler.on_literal_text(begin, begin + 1);
7415
0
    }
7416
1.27M
    else {
7417
1.27M
        auto adapter = id_adapter{handler, 0};
7418
1.27M
        begin = parse_arg_id(begin, end, adapter);
7419
7420
1.27M
        if (SCN_UNLIKELY(begin == end)) {
7421
0
            handler.on_error("Missing '}' in format string");
7422
0
            return begin;
7423
0
        }
7424
7425
1.27M
        if (*begin == CharT{'}'}) {
7426
0
            handler.on_replacement_field(adapter.arg_id, begin);
7427
0
        }
7428
1.27M
        else if (*begin == CharT{':'}) {
7429
1.27M
            if (SCN_UNLIKELY(begin + 1 == end)) {
7430
0
                handler.on_error("Unexpected end of replacement field");
7431
0
                return begin;
7432
0
            }
7433
1.27M
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
7434
1.27M
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
7435
19.0k
                handler.on_error("Unknown format specifier");
7436
19.0k
                return begin;
7437
19.0k
            }
7438
1.27M
        }
7439
0
        else {
7440
0
            SCN_UNLIKELY_ATTR
7441
0
            handler.on_error("Missing '}' in format string");
7442
0
            return begin;
7443
0
        }
7444
1.27M
    }
7445
1.25M
    return begin + 1;
7446
1.27M
}
7447
7448
template <bool IsConstexpr, typename CharT, typename Handler>
7449
constexpr void parse_format_string_impl(std::basic_string_view<CharT> format,
7450
                                        Handler&& handler)
7451
4.23M
{
7452
    // TODO: memchr fast path with a larger (> 32) format string
7453
7454
4.23M
    auto begin = format.data();
7455
4.23M
    auto it = begin;
7456
4.23M
    const auto end = format.data() + format.size();
7457
7458
8.25M
    while (it != end) {
7459
4.23M
        const auto ch = *it++;
7460
4.23M
        if (ch == CharT{'{'}) {
7461
4.23M
            handler.on_literal_text(begin, it - 1);
7462
7463
4.23M
            begin = it = parse_replacement_field(it - 1, end, handler);
7464
4.23M
            if (!handler.get_error()) {
7465
214k
                return;
7466
214k
            }
7467
4.23M
        }
7468
0
        else if (ch == CharT{'}'}) {
7469
0
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
7470
0
                handler.on_error("Unmatched '}' in format string");
7471
0
                return;
7472
0
            }
7473
7474
0
            handler.on_literal_text(begin, it);
7475
0
            begin = ++it;
7476
0
        }
7477
4.23M
    }
7478
7479
4.02M
    handler.on_literal_text(begin, end);
7480
4.02M
}
impl.cpp:void scn::v4::detail::parse_format_string_impl<false, char, scn::v4::(anonymous namespace)::format_handler<true, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v4::(anonymous namespace)::format_handler<true, char>&)
Line
Count
Source
7451
264k
{
7452
    // TODO: memchr fast path with a larger (> 32) format string
7453
7454
264k
    auto begin = format.data();
7455
264k
    auto it = begin;
7456
264k
    const auto end = format.data() + format.size();
7457
7458
480k
    while (it != end) {
7459
264k
        const auto ch = *it++;
7460
264k
        if (ch == CharT{'{'}) {
7461
264k
            handler.on_literal_text(begin, it - 1);
7462
7463
264k
            begin = it = parse_replacement_field(it - 1, end, handler);
7464
264k
            if (!handler.get_error()) {
7465
47.7k
                return;
7466
47.7k
            }
7467
264k
        }
7468
0
        else if (ch == CharT{'}'}) {
7469
0
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
7470
0
                handler.on_error("Unmatched '}' in format string");
7471
0
                return;
7472
0
            }
7473
7474
0
            handler.on_literal_text(begin, it);
7475
0
            begin = ++it;
7476
0
        }
7477
264k
    }
7478
7479
216k
    handler.on_literal_text(begin, end);
7480
216k
}
impl.cpp:void scn::v4::detail::parse_format_string_impl<false, char, scn::v4::(anonymous namespace)::format_handler<false, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v4::(anonymous namespace)::format_handler<false, char>&)
Line
Count
Source
7451
156k
{
7452
    // TODO: memchr fast path with a larger (> 32) format string
7453
7454
156k
    auto begin = format.data();
7455
156k
    auto it = begin;
7456
156k
    const auto end = format.data() + format.size();
7457
7458
289k
    while (it != end) {
7459
156k
        const auto ch = *it++;
7460
156k
        if (ch == CharT{'{'}) {
7461
156k
            handler.on_literal_text(begin, it - 1);
7462
7463
156k
            begin = it = parse_replacement_field(it - 1, end, handler);
7464
156k
            if (!handler.get_error()) {
7465
23.8k
                return;
7466
23.8k
            }
7467
156k
        }
7468
0
        else if (ch == CharT{'}'}) {
7469
0
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
7470
0
                handler.on_error("Unmatched '}' in format string");
7471
0
                return;
7472
0
            }
7473
7474
0
            handler.on_literal_text(begin, it);
7475
0
            begin = ++it;
7476
0
        }
7477
156k
    }
7478
7479
132k
    handler.on_literal_text(begin, end);
7480
132k
}
impl.cpp:void scn::v4::detail::parse_format_string_impl<false, wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)
Line
Count
Source
7451
2.54M
{
7452
    // TODO: memchr fast path with a larger (> 32) format string
7453
7454
2.54M
    auto begin = format.data();
7455
2.54M
    auto it = begin;
7456
2.54M
    const auto end = format.data() + format.size();
7457
7458
4.99M
    while (it != end) {
7459
2.54M
        const auto ch = *it++;
7460
2.54M
        if (ch == CharT{'{'}) {
7461
2.54M
            handler.on_literal_text(begin, it - 1);
7462
7463
2.54M
            begin = it = parse_replacement_field(it - 1, end, handler);
7464
2.54M
            if (!handler.get_error()) {
7465
95.4k
                return;
7466
95.4k
            }
7467
2.54M
        }
7468
0
        else if (ch == CharT{'}'}) {
7469
0
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
7470
0
                handler.on_error("Unmatched '}' in format string");
7471
0
                return;
7472
0
            }
7473
7474
0
            handler.on_literal_text(begin, it);
7475
0
            begin = ++it;
7476
0
        }
7477
2.54M
    }
7478
7479
2.44M
    handler.on_literal_text(begin, end);
7480
2.44M
}
impl.cpp:void scn::v4::detail::parse_format_string_impl<false, wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)
Line
Count
Source
7451
1.27M
{
7452
    // TODO: memchr fast path with a larger (> 32) format string
7453
7454
1.27M
    auto begin = format.data();
7455
1.27M
    auto it = begin;
7456
1.27M
    const auto end = format.data() + format.size();
7457
7458
2.49M
    while (it != end) {
7459
1.27M
        const auto ch = *it++;
7460
1.27M
        if (ch == CharT{'{'}) {
7461
1.27M
            handler.on_literal_text(begin, it - 1);
7462
7463
1.27M
            begin = it = parse_replacement_field(it - 1, end, handler);
7464
1.27M
            if (!handler.get_error()) {
7465
47.7k
                return;
7466
47.7k
            }
7467
1.27M
        }
7468
0
        else if (ch == CharT{'}'}) {
7469
0
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
7470
0
                handler.on_error("Unmatched '}' in format string");
7471
0
                return;
7472
0
            }
7473
7474
0
            handler.on_literal_text(begin, it);
7475
0
            begin = ++it;
7476
0
        }
7477
1.27M
    }
7478
7479
1.22M
    handler.on_literal_text(begin, end);
7480
1.22M
}
7481
7482
template <bool IsConstexpr, typename CharT, typename Handler>
7483
constexpr scan_expected<void> parse_format_string(
7484
    std::basic_string_view<CharT> format,
7485
    Handler&& handler)
7486
4.23M
{
7487
4.23M
    parse_format_string_impl<IsConstexpr>(format, handler);
7488
4.23M
    handler.check_args_exhausted();
7489
4.23M
    return handler.get_error();
7490
4.23M
}
impl.cpp:scn::v4::scan_expected<void> scn::v4::detail::parse_format_string<false, char, scn::v4::(anonymous namespace)::format_handler<true, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v4::(anonymous namespace)::format_handler<true, char>&)
Line
Count
Source
7486
264k
{
7487
264k
    parse_format_string_impl<IsConstexpr>(format, handler);
7488
264k
    handler.check_args_exhausted();
7489
264k
    return handler.get_error();
7490
264k
}
impl.cpp:scn::v4::scan_expected<void> scn::v4::detail::parse_format_string<false, char, scn::v4::(anonymous namespace)::format_handler<false, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v4::(anonymous namespace)::format_handler<false, char>&)
Line
Count
Source
7486
156k
{
7487
156k
    parse_format_string_impl<IsConstexpr>(format, handler);
7488
156k
    handler.check_args_exhausted();
7489
156k
    return handler.get_error();
7490
156k
}
impl.cpp:scn::v4::scan_expected<void> scn::v4::detail::parse_format_string<false, wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)
Line
Count
Source
7486
2.54M
{
7487
2.54M
    parse_format_string_impl<IsConstexpr>(format, handler);
7488
2.54M
    handler.check_args_exhausted();
7489
2.54M
    return handler.get_error();
7490
2.54M
}
impl.cpp:scn::v4::scan_expected<void> scn::v4::detail::parse_format_string<false, wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)
Line
Count
Source
7486
1.27M
{
7487
1.27M
    parse_format_string_impl<IsConstexpr>(format, handler);
7488
1.27M
    handler.check_args_exhausted();
7489
1.27M
    return handler.get_error();
7490
1.27M
}
7491
7492
enum class arg_type_category {
7493
    none,
7494
    integer,
7495
    unsigned_integer,
7496
    floating,
7497
    string,
7498
    pointer,
7499
    boolean,
7500
    character,
7501
    custom
7502
};
7503
7504
constexpr arg_type_category get_category_for_arg_type(arg_type type)
7505
42.9k
{
7506
42.9k
    switch (type) {
7507
0
        case arg_type::none_type:
7508
0
            return arg_type_category::none;
7509
7510
0
        case arg_type::schar_type:
7511
0
        case arg_type::short_type:
7512
0
        case arg_type::int_type:
7513
0
        case arg_type::long_type:
7514
0
        case arg_type::llong_type:
7515
0
            return arg_type_category::integer;
7516
7517
0
        case arg_type::uchar_type:
7518
0
        case arg_type::ushort_type:
7519
0
        case arg_type::uint_type:
7520
0
        case arg_type::ulong_type:
7521
0
        case arg_type::ullong_type:
7522
0
            return arg_type_category::unsigned_integer;
7523
7524
0
        case arg_type::pointer_type:
7525
0
            return arg_type_category::pointer;
7526
0
        case arg_type::bool_type:
7527
0
            return arg_type_category::boolean;
7528
0
        case arg_type::narrow_character_type:
7529
0
        case arg_type::wide_character_type:
7530
0
        case arg_type::code_point_type:
7531
0
            return arg_type_category::character;
7532
7533
0
        case arg_type::float_type:
7534
0
        case arg_type::double_type:
7535
0
        case arg_type::ldouble_type:
7536
0
            return arg_type_category::floating;
7537
7538
4.77k
        case arg_type::narrow_string_view_type:
7539
14.3k
        case arg_type::narrow_string_type:
7540
23.8k
        case arg_type::wide_string_view_type:
7541
42.9k
        case arg_type::wide_string_type:
7542
42.9k
            return arg_type_category::string;
7543
7544
0
        case arg_type::custom_type:
7545
0
            return arg_type_category::custom;
7546
7547
0
            SCN_CLANG_PUSH
7548
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
7549
0
        default:
7550
0
            SCN_ENSURE(false);
7551
42.9k
            SCN_UNREACHABLE;
7552
42.9k
            SCN_CLANG_POP
7553
42.9k
    }
7554
7555
42.9k
    SCN_UNREACHABLE;
7556
42.9k
}
7557
7558
template <typename Handler>
7559
class specs_checker : public Handler {
7560
public:
7561
    template <typename H>
7562
    constexpr specs_checker(H&& handler, arg_type type)
7563
4.23M
        : Handler(SCN_FWD(handler)), m_arg_type(type)
7564
4.23M
    {
7565
4.23M
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7566
4.23M
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >(scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >&&, scn::v4::detail::arg_type)
Line
Count
Source
7563
264k
        : Handler(SCN_FWD(handler)), m_arg_type(type)
7564
264k
    {
7565
264k
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7566
264k
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >(scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&, scn::v4::detail::arg_type)
Line
Count
Source
7563
156k
        : Handler(SCN_FWD(handler)), m_arg_type(type)
7564
156k
    {
7565
156k
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7566
156k
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >(scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >&&, scn::v4::detail::arg_type)
Line
Count
Source
7563
2.54M
        : Handler(SCN_FWD(handler)), m_arg_type(type)
7564
2.54M
    {
7565
2.54M
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7566
2.54M
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >(scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&, scn::v4::detail::arg_type)
Line
Count
Source
7563
1.27M
        : Handler(SCN_FWD(handler)), m_arg_type(type)
7564
1.27M
    {
7565
1.27M
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
7566
1.27M
    }
7567
7568
    constexpr void on_localized()
7569
42.9k
    {
7570
42.9k
        const auto cat = get_category_for_arg_type(m_arg_type);
7571
42.9k
        if (cat != arg_type_category::integer &&
7572
42.9k
            cat != arg_type_category::unsigned_integer &&
7573
42.9k
            cat != arg_type_category::floating &&
7574
42.9k
            cat != arg_type_category::boolean) {
7575
42.9k
            SCN_UNLIKELY_ATTR
7576
            // clang-format off
7577
42.9k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7578
            // clang-format on
7579
42.9k
        }
7580
7581
0
        Handler::on_localized();
7582
0
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >::on_localized()
Line
Count
Source
7569
9.54k
    {
7570
9.54k
        const auto cat = get_category_for_arg_type(m_arg_type);
7571
9.54k
        if (cat != arg_type_category::integer &&
7572
9.54k
            cat != arg_type_category::unsigned_integer &&
7573
9.54k
            cat != arg_type_category::floating &&
7574
9.54k
            cat != arg_type_category::boolean) {
7575
9.54k
            SCN_UNLIKELY_ATTR
7576
            // clang-format off
7577
9.54k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7578
            // clang-format on
7579
9.54k
        }
7580
7581
0
        Handler::on_localized();
7582
0
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::on_localized()
Line
Count
Source
7569
4.77k
    {
7570
4.77k
        const auto cat = get_category_for_arg_type(m_arg_type);
7571
4.77k
        if (cat != arg_type_category::integer &&
7572
4.77k
            cat != arg_type_category::unsigned_integer &&
7573
4.77k
            cat != arg_type_category::floating &&
7574
4.77k
            cat != arg_type_category::boolean) {
7575
4.77k
            SCN_UNLIKELY_ATTR
7576
            // clang-format off
7577
4.77k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7578
            // clang-format on
7579
4.77k
        }
7580
7581
0
        Handler::on_localized();
7582
0
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >::on_localized()
Line
Count
Source
7569
19.0k
    {
7570
19.0k
        const auto cat = get_category_for_arg_type(m_arg_type);
7571
19.0k
        if (cat != arg_type_category::integer &&
7572
19.0k
            cat != arg_type_category::unsigned_integer &&
7573
19.0k
            cat != arg_type_category::floating &&
7574
19.0k
            cat != arg_type_category::boolean) {
7575
19.0k
            SCN_UNLIKELY_ATTR
7576
            // clang-format off
7577
19.0k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7578
            // clang-format on
7579
19.0k
        }
7580
7581
0
        Handler::on_localized();
7582
0
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::on_localized()
Line
Count
Source
7569
9.54k
    {
7570
9.54k
        const auto cat = get_category_for_arg_type(m_arg_type);
7571
9.54k
        if (cat != arg_type_category::integer &&
7572
9.54k
            cat != arg_type_category::unsigned_integer &&
7573
9.54k
            cat != arg_type_category::floating &&
7574
9.54k
            cat != arg_type_category::boolean) {
7575
9.54k
            SCN_UNLIKELY_ATTR
7576
            // clang-format off
7577
9.54k
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
7578
            // clang-format on
7579
9.54k
        }
7580
7581
0
        Handler::on_localized();
7582
0
    }
7583
7584
private:
7585
    arg_type m_arg_type;
7586
};
7587
7588
template <typename Handler>
7589
constexpr void check_int_type_specs(const format_specs& specs,
7590
                                    Handler&& handler)
7591
0
{
7592
0
    if (SCN_UNLIKELY(specs.type > presentation_type::int_hex)) {
7593
0
        return handler.on_error("Invalid type specifier for integer type");
7594
0
    }
7595
0
    if (specs.localized) {
7596
0
        if (SCN_UNLIKELY(specs.type == presentation_type::int_binary)) {
7597
            // clang-format off
7598
0
            handler.on_error("'b'/'B' specifier not supported for localized integers");
7599
            // clang-format on
7600
0
            return;
7601
0
        }
7602
0
        if (SCN_UNLIKELY(specs.type == presentation_type::int_arbitrary_base)) {
7603
            // clang-format off
7604
0
            return handler.on_error("Arbitrary bases not supported for localized integers");
7605
            // clang-format on
7606
0
        }
7607
0
    }
7608
0
}
Unexecuted instantiation: void scn::v4::detail::check_int_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
Unexecuted instantiation: void scn::v4::detail::check_int_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
7609
7610
template <typename Handler>
7611
constexpr void check_char_type_specs(const format_specs& specs,
7612
                                     Handler&& handler)
7613
0
{
7614
0
    if (specs.type > presentation_type::int_hex ||
7615
0
        specs.type == presentation_type::int_arbitrary_base) {
7616
0
        SCN_UNLIKELY_ATTR
7617
0
        return handler.on_error("Invalid type specifier for character type");
7618
0
    }
7619
0
}
Unexecuted instantiation: void scn::v4::detail::check_char_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
Unexecuted instantiation: void scn::v4::detail::check_char_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
7620
7621
template <typename Handler>
7622
constexpr void check_code_point_type_specs(const format_specs& specs,
7623
                                           Handler&& handler)
7624
0
{
7625
0
    if (specs.type != presentation_type::none &&
7626
0
        specs.type != presentation_type::character) {
7627
0
        SCN_UNLIKELY_ATTR
7628
0
        return handler.on_error("Invalid type specifier for code point type");
7629
0
    }
7630
0
}
7631
7632
template <typename Handler>
7633
constexpr void check_float_type_specs(const format_specs& specs,
7634
                                      Handler&& handler)
7635
0
{
7636
0
    if (specs.type != presentation_type::none &&
7637
0
        (specs.type < presentation_type::float_hex ||
7638
0
         specs.type > presentation_type::float_general)) {
7639
0
        SCN_UNLIKELY_ATTR
7640
0
        return handler.on_error("Invalid type specifier for float type");
7641
0
    }
7642
0
}
Unexecuted instantiation: void scn::v4::detail::check_float_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
Unexecuted instantiation: void scn::v4::detail::check_float_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
7643
7644
template <typename Handler>
7645
constexpr void check_string_type_specs(const format_specs& specs,
7646
                                       Handler&& handler)
7647
4.14M
{
7648
4.14M
    if (specs.type == presentation_type::none ||
7649
4.14M
        specs.type == presentation_type::string ||
7650
4.14M
        specs.type == presentation_type::string_set ||
7651
4.14M
        specs.type == presentation_type::regex ||
7652
4.14M
        specs.type == presentation_type::regex_escaped) {
7653
4.10M
        return;
7654
4.10M
    }
7655
42.9k
    if (specs.type == presentation_type::character) {
7656
42.9k
        if (SCN_UNLIKELY(specs.precision == 0)) {
7657
            // clang-format off
7658
42.9k
            return handler.on_error("'c' type specifier for strings requires the field precision to be specified");
7659
            // clang-format on
7660
42.9k
        }
7661
0
        return;
7662
42.9k
    }
7663
0
    SCN_UNLIKELY_ATTR
7664
0
    handler.on_error("Invalid type specifier for string");
7665
0
}
Unexecuted instantiation: void scn::v4::detail::check_string_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
void scn::v4::detail::check_string_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
Line
Count
Source
7647
4.14M
{
7648
4.14M
    if (specs.type == presentation_type::none ||
7649
4.14M
        specs.type == presentation_type::string ||
7650
4.14M
        specs.type == presentation_type::string_set ||
7651
4.14M
        specs.type == presentation_type::regex ||
7652
4.14M
        specs.type == presentation_type::regex_escaped) {
7653
4.10M
        return;
7654
4.10M
    }
7655
42.9k
    if (specs.type == presentation_type::character) {
7656
42.9k
        if (SCN_UNLIKELY(specs.precision == 0)) {
7657
            // clang-format off
7658
42.9k
            return handler.on_error("'c' type specifier for strings requires the field precision to be specified");
7659
            // clang-format on
7660
42.9k
        }
7661
0
        return;
7662
42.9k
    }
7663
0
    SCN_UNLIKELY_ATTR
7664
0
    handler.on_error("Invalid type specifier for string");
7665
0
}
7666
7667
template <typename Handler>
7668
constexpr void check_pointer_type_specs(const format_specs& specs,
7669
                                        Handler&& handler)
7670
0
{
7671
0
    if (specs.type != presentation_type::none &&
7672
0
        specs.type != presentation_type::pointer) {
7673
0
        SCN_UNLIKELY_ATTR
7674
0
        return handler.on_error("Invalid type specifier for pointer");
7675
0
    }
7676
0
}
Unexecuted instantiation: void scn::v4::detail::check_pointer_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
Unexecuted instantiation: void scn::v4::detail::check_pointer_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
7677
7678
template <typename Handler>
7679
constexpr void check_bool_type_specs(const format_specs& specs,
7680
                                     Handler&& handler)
7681
0
{
7682
0
    if (specs.type != presentation_type::none &&
7683
0
        specs.type != presentation_type::string &&
7684
0
        specs.type != presentation_type::int_generic &&
7685
0
        specs.type != presentation_type::int_hex &&
7686
0
        specs.type != presentation_type::int_binary &&
7687
0
        specs.type != presentation_type::int_unsigned_decimal &&
7688
0
        specs.type != presentation_type::int_octal &&
7689
0
        specs.type != presentation_type::int_decimal) {
7690
0
        SCN_UNLIKELY_ATTR
7691
0
        return handler.on_error("Invalid type specifier for boolean");
7692
0
    }
7693
0
}
Unexecuted instantiation: void scn::v4::detail::check_bool_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
Unexecuted instantiation: void scn::v4::detail::check_bool_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
7694
7695
template <typename Handler>
7696
constexpr void check_regex_type_specs(const format_specs& specs,
7697
                                      Handler&& handler)
7698
0
{
7699
0
    if (SCN_UNLIKELY(specs.type == presentation_type::none ||
7700
0
                     specs.charset_string_size == 0)) {
7701
        // clang-format off
7702
0
        return handler.on_error("Regular expression needs to specified when reading regex_matches");
7703
        // clang-format on
7704
0
    }
7705
0
    if (specs.type == presentation_type::regex ||
7706
0
        specs.type == presentation_type::regex_escaped) {
7707
0
        return;
7708
0
    }
7709
0
    SCN_UNLIKELY_ATTR
7710
0
    handler.on_error("Invalid type specifier for regex_matches");
7711
0
}
Unexecuted instantiation: void scn::v4::detail::check_regex_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
Unexecuted instantiation: void scn::v4::detail::check_regex_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
7712
}  // namespace detail
7713
7714
/**
7715
 * \defgroup format-string Format strings
7716
 *
7717
 * \brief Format string description
7718
 *
7719
 * The format string syntax is heavily influenced by {fmt} and
7720
 * `std::format`, and is largely compatible with it. Scanning functions,
7721
 * such as `scn::scan` and
7722
 * `scn::input`, use the format string syntax described in this section.
7723
 *
7724
 * Format strings consist of:
7725
 *
7726
 *  * Replacement fields, which are surrounded by curly braces `{}`.
7727
 *
7728
 *  * Non-whitespace characters (except `{}`; for literal braces, use
7729
 *    `{{` and `}}`), which consume exactly one identical character from the
7730
 *    input
7731
 *
7732
 *  * Whitespace characters, which consume any and all available consecutive
7733
 *    whitespace from the input.
7734
 *
7735
 * Literal characters are matched by code point one-to-one, with no
7736
 * normalization being done.
7737
 * `Ä` (U+00C4, UTF-8 0xc3 0x84) only matches another U+00C4, and not, for
7738
 * example, U+00A8 (DIAERESIS) and U+0041 (LATIN CAPITAL LETTER A).
7739
 *
7740
 * Characters (code points) are considered to be whitespace characters by
7741
 * the Unicode Pattern_White_Space property, as defined by UAX31-R3a.
7742
 * These code points are:
7743
 *
7744
 *  * ASCII whitespace characters ("\t\n\v\f\r ")
7745
 *  * U+0085 (next line)
7746
 *  * U+200E and U+200F (LEFT-TO-RIGHT MARK and RIGHT-TO-LEFT MARK)
7747
 *  * U+2028 and U+2029 (LINE SEPARATOR and PARAGRAPH SEPARATOR)
7748
 *
7749
 * The grammar for a replacement field is as follows:
7750
 *
7751
 * \code
7752
 * replacement-field   ::= '{' [arg-id] [':' format-spec] '}'
7753
 * arg-id              ::= positive-integer
7754
 *
7755
 * format-spec         ::= [fill-and-align]
7756
 *                         [width] [precision]
7757
 *                         ['L'] [type]
7758
 * fill-and-align      ::= [fill] align
7759
 * fill                ::= any character other than
7760
 *                         '{' or '}'
7761
 * align               ::= one of '<' '>' '^'
7762
 * width               ::= positive-integer
7763
 * precision           ::= '.' nonnegative-integer
7764
 * type                ::= 'a' | 'A' | 'b' | 'B' | 'c' | 'd' |
7765
 *                         'e' | 'E' | 'f' | 'F' | 'g' | 'G' |
7766
 *                         'o' | 'p' | 's' | 'x' | 'X' | 'i' | 'u'
7767
 * \endcode
7768
 *
7769
 * \section arg-ids Argument IDs
7770
 *
7771
 * The `arg-id` specifier can be used to index arguments manually.
7772
 * If manual indexing is used, all of the indices in a format string must be
7773
 * stated explicitly. The same `arg-id` can appear in the format string
7774
 * only once, and must refer to a valid argument.
7775
 *
7776
 * \code{.cpp}
7777
 * // Format string equivalent to "{0} to {1}"
7778
 * auto a = scn::scan<int, int>("2 to 300", "{} to {}");
7779
 * // a->values() == (2, 300)
7780
 *
7781
 * // Manual indexing
7782
 * auto b = scn::scan<int, int>("2 to 300", "{1} to {0}");
7783
 * // b->values() == (3, 200)
7784
 *
7785
 * // INVALID:
7786
 * // Automatic and manual indexing is mixed
7787
 * auto c = scn::scan<int, int>("2 to 300", "{} to {0}");
7788
 *
7789
 * // INVALID:
7790
 * // Same argument is referred to multiple times
7791
 * auto d = scn::scan<int, int>("2 to 300", "{0} to {0}");
7792
 *
7793
 * // INVALID:
7794
 * // {2} does not refer to an argument
7795
 * auto e = scn::scan<int, int>("2 to 300", "{0} to {2}");
7796
 * \endcode
7797
 *
7798
 * \section fill-and-align Fill and align
7799
 *
7800
 * Alignment allows for skipping character before and/or after a value.
7801
 * There are three possible values for alignment:
7802
 *
7803
 * <table>
7804
 * <caption id="align-table">
7805
 * Alignment options
7806
 * </caption>
7807
 *
7808
 * <tr><th>Option</th> <th>Meaning</th></tr>
7809
 *
7810
 * <tr>
7811
 * <td>`<`</td>
7812
 * <td>
7813
 * Align the value to the left (skips fill characters after the value)
7814
 * </td>
7815
 * </tr>
7816
 *
7817
 * <tr>
7818
 * <td>`>`</td>
7819
 * <td>
7820
 * Align the value to the right (skips fill characters before the value)
7821
 * </td>
7822
 * </tr>
7823
 *
7824
 * <tr>
7825
 * <td>`^`</td>
7826
 * <td>
7827
 * Align the value to the center
7828
 * (skips fill characters both before and after the value)
7829
 * </td>
7830
 * </tr>
7831
 * </table>
7832
 *
7833
 * The fill character can be any Unicode code point, except for `{` and `}`.
7834
 * The default fill is the space character `' '`.
7835
 *
7836
 * For format type specifiers other than `c` (default for `char` and `wchar_t`,
7837
 * available for `string` and `string_view`), `[...]`, and the regex `/.../`,
7838
 * the default alignment is `>`.
7839
 * Otherwise, the default alignment is `<`.
7840
 *
7841
 * In addition to the skipping of fill characters,
7842
 * for format type specifiers with the `>` default alignment,
7843
 * preceding whitespace is automatically skipped.
7844
 * This preceding whitespace isn't counted as part of the field width,
7845
 * as described below.
7846
 *
7847
 * The number of fill characters consumed can be controlled with the width and
7848
 * precision specifiers.
7849
 *
7850
 * \section width Width
7851
 *
7852
 * Width specifies the minimum number of characters that will be read from
7853
 * the source range. It can be any unsigned integer. Any fill characters skipped
7854
 * are included in the width
7855
 *
7856
 * For the purposes of width calculation, the same algorithm is used that in
7857
 * {fmt}. Every code point has a width of one, except the following ones
7858
 * have a width of 2:
7859
 *
7860
 * * any code point with the East_Asian_Width="W" or East_Asian_Width="F"
7861
 *   Derived Extracted Property as described by UAX#44
7862
 * * U+4DC0 – U+4DFF (Yijing Hexagram Symbols)
7863
 * * U+1F300 – U+1F5FF (Miscellaneous Symbols and Pictographs)
7864
 * * U+1F900 – U+1F9FF (Supplemental Symbols and Pictographs)
7865
 *
7866
 * \section precision Precision
7867
 *
7868
 * Precision specifies the maximum number of characters that will be read from
7869
 * the source range. The method for counting characters is the same as above,
7870
 * with the width field.
7871
 *
7872
 * \section localized Localized
7873
 *
7874
 * The `L` flag enables localized scanning.
7875
 * Its effects are different for each type it is used with:
7876
 *
7877
 *  * For integers, it enables locale-specific thousands separators
7878
 *  * For floating-point numbers, it enables locale-specific thousands and
7879
 *    radix (decimal) separators
7880
 *  * For booleans, it enables locale-specific textual representations (for
7881
 *    `true` and `false`)
7882
 *  * For other types, it has no effect
7883
 *
7884
 * \section type Type specifier
7885
 *
7886
 * The type specifier determines how the data is to be scanned.
7887
 * The type of the argument to be scanned determines what flags are valid.
7888
 *
7889
 * \subsection type-string Type specifier: strings
7890
 *
7891
 * <table>
7892
 * <caption id="type-string-table">
7893
 * String types (`std::basic_string` and `std::basic_string_view`)
7894
 * </caption>
7895
 * <tr><th>Type</th> <th>Meaning</th></tr>
7896
 * <tr>
7897
 * <td>none, `s`</td>
7898
 * <td>
7899
 * Copies from the input until a whitespace character is encountered, or,
7900
 * if using the `<` (left) or `^` (center) alignment,
7901
 * a fill character is encountered.
7902
 * </td>
7903
 * </tr>
7904
 * <tr>
7905
 * <td>`c`</td>
7906
 * <td>
7907
 * Copies from the input until the field width is exhausted.
7908
 * Doesn't skip preceding whitespace.
7909
 * Errors if no field precision is provided.
7910
 * </td>
7911
 * </tr>
7912
 * <tr>
7913
 * <td>`[...]`</td>
7914
 * <td>
7915
 * Character set matching: copies from the input until a character not specified
7916
 * in the set is encountered. Character ranges can be specified with `-`, and
7917
 * the entire selection can be inverted with a prefix `^`. Matches and supports
7918
 * arbitrary Unicode code points.
7919
 * Doesn't skip preceding whitespace.
7920
 * </td>
7921
 * </tr>
7922
 * <tr>
7923
 * <td>`/<regex>/<flags>`</td>
7924
 * <td>
7925
 * Regular expression matching: copies from the input until the input does not
7926
 * match the regex.
7927
 * Doesn't skip preceding whitespace.
7928
 * \see regex
7929
 * </td>
7930
 * </tr>
7931
 * </table>
7932
 *
7933
 * \note `std::basic_string_view` can only be scanned if the source is
7934
 * contiguous.
7935
 *
7936
 * \subsection type-int Type specifier: integers
7937
 *
7938
 * Integer values are scanned as if by using `std::from_chars`,
7939
 * except a positive `+` sign and a base prefix (like `0x`) are always
7940
 * allowed to be present.
7941
 *
7942
 * <table>
7943
 * <caption id="type-int-table">
7944
 * Integer types (`signed` and `unsigned` variants of `char`, `short`,
7945
 * `int`, `long`, and `long long`)
7946
 * </caption>
7947
 * <tr><th>Type</th> <th>Meaning</th></tr>
7948
 * <tr>
7949
 * <td>`b`, `B`</td>
7950
 * <td>
7951
 * `std::from_chars` with base `2`. The base prefix is `0b` or `0B`.
7952
 * </td>
7953
 * </tr>
7954
 * <tr>
7955
 * <td>`o`, `O`</td>
7956
 * <td>
7957
 * `std::from_chars` with base `8`. The base prefix is `0o` or `0O`, or just
7958
 * `0`.
7959
 * </td>
7960
 * </tr>
7961
 * <tr>
7962
 * <td>`x`, `X`</td>
7963
 * <td>
7964
 * `std::from_chars` with base `16`. The base prefix is `0x` or `0X`.
7965
 * </td>
7966
 * </tr>
7967
 * <tr>
7968
 * <td>`d`</td>
7969
 * <td>
7970
 * `std::from_chars` with base `10`. No base prefix allowed.
7971
 * </td>
7972
 * </tr>
7973
 * <tr>
7974
 * <td>`u`</td>
7975
 * <td>
7976
 * `std::from_chars` with base `10`. No base prefix or `-` sign allowed.
7977
 * </td>
7978
 * </tr>
7979
 * <tr>
7980
 * <td>`i`</td>
7981
 * <td>
7982
 * Detect the base from a possible prefix, defaulting to decimal (base-10).
7983
 * </td>
7984
 * </tr>
7985
 * <tr>
7986
 * <td>`rXX` (where XX = [2, 36])</td>
7987
 * <td>
7988
 * Custom base, without a base prefix (r stands for radix).
7989
 * </td>
7990
 * </tr>
7991
 * <tr>
7992
 * <td>`c`</td>
7993
 * <td>
7994
 * Copies a character (code unit) from the input.
7995
 * </td>
7996
 * </tr>
7997
 * <tr>
7998
 * <td>none</td>
7999
 * <td>
8000
 * Same as `d`.
8001
 * </td>
8002
 * </tr>
8003
 * </table>
8004
 *
8005
 * \subsection type-char Type specifier: characters
8006
 *
8007
 * <table>
8008
 * <caption id="type-char-table">
8009
 * Character types (`char` and `wchar_t`), and code points (`char32_t`)
8010
 * </caption>
8011
 * <tr><th>Type</th> <th>Meaning</th></tr>
8012
 * <tr>
8013
 * <td>none, `c`</td>
8014
 * <td>
8015
 * Copies a character (code point for `char32_t`, code unit otherwise) from the
8016
 * input.
8017
 * </td>
8018
 * </tr>
8019
 * <tr>
8020
 * <td>`b`, `B`, `d`, `i`, `o`, `O`, `u`, `x`, `X`</td>
8021
 * <td>
8022
 * Same as for integers, see above \ref type-int. Not allowed for `char32_t`.
8023
 * </td>
8024
 * </tr>
8025
 * </table>
8026
 *
8027
 * \note When scanning characters (`char` and `wchar_t`), the source range is
8028
 * read a single code unit at a time, and encoding is not respected.
8029
 *
8030
 * \subsection type-float Type specifier: floating-point values
8031
 *
8032
 * Floating-point values are scanned as if by using `std::from_chars`,
8033
 * except a positive `+` sign and a base prefix (like `0x`) are always
8034
 * allowed to be present.
8035
 *
8036
 * <table>
8037
 * <caption id="type-float-table">
8038
 * Floating-point types (`float`, `double`, and `long double`)
8039
 * </caption>
8040
 * <tr><th>Type</th> <th>Meaning</th></tr>
8041
 * <tr>
8042
 * <td>`a`, `A`</td>
8043
 * <td>
8044
 * `std::from_chars` with `std::chars_format::hex`.
8045
 * Prefix `0x`/`0X` is allowed.
8046
 * </td>
8047
 * </tr>
8048
 * <tr>
8049
 * <td>`e`, `E`</td>
8050
 * <td>
8051
 * `std::from_chars` with `std::chars_format::scientific`.
8052
 * </td>
8053
 * </tr>
8054
 * <tr>
8055
 * <td>`f`, `F`</td>
8056
 * <td>
8057
 * `std::from_chars` with `std::chars_format::fixed`.
8058
 * </td>
8059
 * </tr>
8060
 * <tr>
8061
 * <td>`g`, `G`</td>
8062
 * <td>
8063
 * `std::from_chars` with `std::chars_format::general`.
8064
 * </td>
8065
 * </tr>
8066
 * <tr>
8067
 * <td>none</td>
8068
 * <td>
8069
 * `std::from_chars` with `std::chars_format::general | std::chars_format::hex`.
8070
 * Prefix `0x`/`0X` is allowed.
8071
 * </td>
8072
 * </tr>
8073
 * </table>
8074
 *
8075
 * \subsection type-bool Type specifier: booleans
8076
 *
8077
 * <table>
8078
 * <caption id="type-bool-table">
8079
 * `bool`
8080
 * </caption>
8081
 * <tr><th>Type</th> <th>Meaning</th></tr>
8082
 * <tr>
8083
 * <td>`s`</td>
8084
 * <td>
8085
 * Allows for the textual representation (`true` or `false`).
8086
 * </td>
8087
 * </tr>
8088
 * <tr>
8089
 * <td>`b`, `B`, `d`, `i`, `o`, `O`, `u`, `x`, `X`</td>
8090
 * <td>
8091
 * Allows for the integral/numeric representation (`0` or `1`).
8092
 * </td>
8093
 * </tr>
8094
 * <tr>
8095
 * <td>none</td>
8096
 * <td>
8097
 * Allows for both the textual and the integral/numeric representation.
8098
 * </td>
8099
 * </tr>
8100
 * </table>
8101
 */
8102
8103
namespace detail {
8104
/**
8105
 * A runtime format string
8106
 *
8107
 * \ingroup format-string
8108
 */
8109
template <typename CharT>
8110
struct basic_runtime_format_string {
8111
8.29M
    basic_runtime_format_string(std::basic_string_view<CharT> s) : str(s) {}
scn::v4::detail::basic_runtime_format_string<char>::basic_runtime_format_string(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
8111
776k
    basic_runtime_format_string(std::basic_string_view<CharT> s) : str(s) {}
scn::v4::detail::basic_runtime_format_string<wchar_t>::basic_runtime_format_string(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
8111
7.51M
    basic_runtime_format_string(std::basic_string_view<CharT> s) : str(s) {}
8112
8113
    basic_runtime_format_string(const basic_runtime_format_string&) = delete;
8114
    basic_runtime_format_string(basic_runtime_format_string&&) = delete;
8115
    basic_runtime_format_string& operator=(const basic_runtime_format_string&) =
8116
        delete;
8117
    basic_runtime_format_string& operator=(basic_runtime_format_string&&) =
8118
        delete;
8119
    ~basic_runtime_format_string() = default;
8120
8121
    std::basic_string_view<CharT> str;
8122
};
8123
}  // namespace detail
8124
8125
/**
8126
 * Create a runtime format string
8127
 *
8128
 * Can be used to avoid compile-time format string checking
8129
 *
8130
 * \ingroup format-string
8131
 */
8132
inline detail::basic_runtime_format_string<char> runtime_format(
8133
    std::string_view s)
8134
776k
{
8135
776k
    return s;
8136
776k
}
8137
inline detail::basic_runtime_format_string<wchar_t> runtime_format(
8138
    std::wstring_view s)
8139
7.51M
{
8140
7.51M
    return s;
8141
7.51M
}
8142
8143
namespace detail {
8144
struct compile_string {};
8145
8146
template <typename Str>
8147
inline constexpr bool is_compile_string_v =
8148
    std::is_base_of_v<compile_string, Str>;
8149
8150
template <typename Scanner, typename = void>
8151
inline constexpr bool scanner_has_format_specs_member_v = false;
8152
template <typename Scanner>
8153
inline constexpr bool scanner_has_format_specs_member_v<
8154
    Scanner,
8155
    std::void_t<decltype(SCN_DECLVAL(Scanner&)._format_specs())>> = true;
8156
8157
template <typename Scanner, typename ParseCtx>
8158
using dt_scanner_parse =
8159
    decltype(SCN_DECLVAL(Scanner&).parse(SCN_DECLVAL(ParseCtx&)));
8160
template <typename Scanner, typename T, typename Ctx>
8161
using dt_scanner_scan = decltype(SCN_DECLVAL(const Scanner&)
8162
                                     .scan(SCN_DECLVAL(T&), SCN_DECLVAL(Ctx&)));
8163
8164
template <typename Scanner,
8165
          typename Source,
8166
          typename T,
8167
          typename Ctx,
8168
          typename ParseCtx>
8169
constexpr typename ParseCtx::iterator parse_format_specs_impl(
8170
    ParseCtx& parse_ctx)
8171
{
8172
    static_assert(
8173
        std::is_default_constructible_v<Scanner>,
8174
        "Specializations of scn::scanner must be default constructible");
8175
    static_assert(mp_valid<dt_scanner_parse, Scanner, ParseCtx>::value,
8176
                  "Specializations of scn::scanner must have a "
8177
                  "parse(ParseContext&) member function.");
8178
    static_assert(
8179
        std::is_same_v<mp_eval_or<void, dt_scanner_parse, Scanner, ParseCtx>,
8180
                       typename ParseCtx::iterator>,
8181
        "scn::scanner::parse(ParseContext&) must return "
8182
        "ParseContext::iterator. To report an error from scanner::parse, "
8183
        "either throw an exception derived from scn::scan_format_string_error, "
8184
        "or call ParseContext::on_error.");
8185
    static_assert(mp_valid<dt_scanner_scan, Scanner, T, Ctx>::value,
8186
                  "Specializations of scn::scanner must have a "
8187
                  "scan(T&, Context&) const member function.");
8188
    static_assert(
8189
        std::is_same_v<mp_eval_or<void, dt_scanner_scan, Scanner, T, Ctx>,
8190
                       scan_expected<typename Ctx::iterator>>,
8191
        "scn::scanner::scan(T&, Context&) must return "
8192
        "scan_expected<Context::iterator>.");
8193
8194
    auto s = Scanner{};
8195
    auto it = s.parse(parse_ctx);
8196
8197
    if constexpr (scanner_has_format_specs_member_v<Scanner>) {
8198
        auto& specs = s._format_specs();
8199
        if ((specs.type == presentation_type::regex ||
8200
             specs.type == presentation_type::regex_escaped) &&
8201
            !(ranges::range<Source> && ranges::contiguous_range<Source>)) {
8202
            // clang-format off
8203
            parse_ctx.on_error("Cannot read a regex from a non-contiguous source");
8204
            // clang-format on
8205
        }
8206
    }
8207
    return it;
8208
}
8209
8210
template <typename T, typename Source, typename Ctx, typename ParseCtx>
8211
constexpr typename ParseCtx::iterator parse_format_specs(ParseCtx& parse_ctx)
8212
{
8213
    using char_type = typename Ctx::char_type;
8214
    using map_result =
8215
        std::remove_reference_t<decltype(arg_mapper<char_type>().map(
8216
            SCN_DECLVAL(T&)))>;
8217
    if constexpr (std::is_base_of_v<unscannable, map_result>) {
8218
        // Error will be reported by static_assert in make_value(),
8219
        // let's not muddy the compiler error by making more of them.
8220
        return parse_ctx.begin();
8221
    }
8222
    else {
8223
        using mapped_type =
8224
            std::conditional_t<arg_type_constant<T, char_type>::value !=
8225
                                   arg_type::custom_type,
8226
                               map_result, T>;
8227
        using scanner_type = typename Ctx::template scanner_type<mapped_type>;
8228
        return parse_format_specs_impl<scanner_type, Source, T, Ctx, ParseCtx>(
8229
            parse_ctx);
8230
    }
8231
}
8232
8233
template <typename CharT, typename Source, typename... Args>
8234
class format_string_checker {
8235
public:
8236
    using parse_context_type = compile_parse_context<CharT>;
8237
    static constexpr auto num_args = sizeof...(Args);
8238
8239
    explicit constexpr format_string_checker(
8240
        std::basic_string_view<CharT> format_str)
8241
        : m_parse_context(format_str,
8242
                          num_args,
8243
                          m_types,
8244
                          type_identity<Source>{}),
8245
          m_parse_funcs{&parse_format_specs<Args,
8246
                                            Source,
8247
                                            default_context<CharT>,
8248
                                            parse_context_type>...},
8249
          m_types{arg_type_constant<Args, CharT>::value...}
8250
    {
8251
    }
8252
8253
    constexpr void on_literal_text(const CharT* begin, const CharT* end)
8254
    {
8255
        // TODO: Do we want to validate Unicode in format strings?
8256
        // We're dealing with text, so we probably do.
8257
        // We could do codeunit-to-codeunit matching,
8258
        // but that could get messy wrt. whitespace matching.
8259
        // It's simpler to not allow nonsense.
8260
        while (begin != end) {
8261
            const auto len = code_point_length_by_starting_code_unit(*begin);
8262
            if (SCN_UNLIKELY(len == 0 ||
8263
                             static_cast<size_t>(end - begin) < len)) {
8264
                return on_error("Invalid encoding in format string");
8265
            }
8266
8267
            const auto cp = decode_code_point_exhaustive(
8268
                std::basic_string_view<CharT>{begin, len});
8269
            if (SCN_UNLIKELY(cp >= invalid_code_point)) {
8270
                return on_error("Invalid encoding in format string");
8271
            }
8272
8273
            begin += len;
8274
        }
8275
    }
8276
8277
    constexpr auto on_arg_id()
8278
    {
8279
        return m_parse_context.next_arg_id();
8280
    }
8281
    constexpr auto on_arg_id(std::size_t id)
8282
    {
8283
        m_parse_context.check_arg_id(id);
8284
        return id;
8285
    }
8286
8287
    constexpr void on_replacement_field(size_t id, const CharT*)
8288
    {
8289
        m_parse_context.check_arg_can_be_read(id);
8290
        set_arg_as_read(id);
8291
8292
        if (m_types[id] == arg_type::narrow_regex_matches_type ||
8293
            m_types[id] == arg_type::wide_regex_matches_type) {
8294
            // clang-format off
8295
            return on_error("Regular expression needs to be specified when reading regex_matches");
8296
            // clang-format on
8297
        }
8298
    }
8299
8300
    constexpr const CharT* on_format_specs(std::size_t id,
8301
                                           const CharT* begin,
8302
                                           const CharT*)
8303
    {
8304
        m_parse_context.check_arg_can_be_read(id);
8305
        set_arg_as_read(id);
8306
        m_parse_context.advance_to(begin);
8307
        return id < num_args ? m_parse_funcs[id](m_parse_context) : begin;
8308
    }
8309
8310
    constexpr void check_args_exhausted()
8311
    {
8312
        if (num_args == 0) {
8313
            return;
8314
        }
8315
        for (auto is_set : m_visited_args) {
8316
            if (!is_set) {
8317
                return on_error("Argument list not exhausted");
8318
            }
8319
        }
8320
    }
8321
8322
    void on_error(const char* msg)
8323
    {
8324
        SCN_UNLIKELY_ATTR
8325
        m_parse_context.on_error(msg);
8326
    }
8327
8328
    // Only to satisfy the concept and eliminate compiler errors,
8329
    // because errors are reported by failing to compile on_error above
8330
    // (it's not constexpr)
8331
    constexpr scan_expected<void> get_error() const
8332
    {
8333
        return {};
8334
    }
8335
8336
private:
8337
    constexpr void set_arg_as_read(size_t id)
8338
    {
8339
        if (id >= num_args) {
8340
            return on_error("Invalid out-of-range argument ID");
8341
        }
8342
        if (m_visited_args[id]) {
8343
            return on_error("Argument with this ID already scanned");
8344
        }
8345
        m_visited_args[id] = true;
8346
    }
8347
8348
    using parse_func = const CharT* (*)(parse_context_type&);
8349
8350
    parse_context_type m_parse_context;
8351
    parse_func m_parse_funcs[num_args > 0 ? num_args : 1];
8352
    arg_type m_types[num_args > 0 ? num_args : 1];
8353
    bool m_visited_args[num_args > 0 ? num_args : 1] = {false};
8354
};
8355
8356
template <typename Source, typename... Args, typename Str>
8357
constexpr auto check_format_string(const Str&)
8358
    -> std::enable_if_t<!is_compile_string_v<Str>>
8359
0
{
8360
    // TODO: SCN_ENFORE_COMPILE_STRING?
8361
#if 0  // SCN_ENFORE_COMPILE_STRING
8362
    static_assert(dependent_false<Str>::value,
8363
              "SCN_ENFORCE_COMPILE_STRING requires all format "
8364
              "strings to use SCN_STRING.");
8365
#endif
8366
0
}
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<char [9]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char [9]>(char const (&) [9])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<char [3]>), void>::type scn::v4::detail::check_format_string<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, double, char [3]>(char const (&) [3])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<char [19]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char [19]>(char const (&) [19])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<char [9]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char [9]>(char const (&) [9])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<char [19]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char [19]>(char const (&) [19])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<wchar_t [9]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, wchar_t [9]>(wchar_t const (&) [9])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<wchar_t [19]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, wchar_t [19]>(wchar_t const (&) [19])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<wchar_t [9]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, wchar_t [9]>(wchar_t const (&) [9])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<wchar_t [19]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, wchar_t [19]>(wchar_t const (&) [19])
8367
8368
template <typename Source, typename... Args, typename Str>
8369
constexpr auto check_format_string(Str format_str)
8370
    -> std::enable_if_t<is_compile_string_v<Str>>
8371
{
8372
    using char_type = typename Str::char_type;
8373
8374
    SCN_GCC_PUSH
8375
    SCN_GCC_IGNORE("-Wconversion")
8376
    constexpr auto s = std::basic_string_view<char_type>{format_str};
8377
    SCN_GCC_POP
8378
8379
    using checker = format_string_checker<char_type, Source, Args...>;
8380
    constexpr bool invalid_format =
8381
        (parse_format_string<true>(s, checker(s)), true);
8382
    SCN_UNUSED(invalid_format);
8383
}
8384
8385
template <typename CharT, std::size_t N>
8386
constexpr std::basic_string_view<CharT> compile_string_to_view(
8387
    const CharT (&s)[N])
8388
{
8389
    return {s, N - 1};
8390
}
8391
template <typename CharT>
8392
constexpr std::basic_string_view<CharT> compile_string_to_view(
8393
    std::basic_string_view<CharT> s)
8394
{
8395
    return s;
8396
}
8397
}  // namespace detail
8398
8399
#define SCN_STRING_IMPL(s, base, expl)                                       \
8400
    [] {                                                                     \
8401
        struct SCN_COMPILE_STRING : base {                                   \
8402
            using char_type = ::scn::detail::remove_cvref_t<decltype(s[0])>; \
8403
            SCN_MAYBE_UNUSED constexpr expl                                  \
8404
            operator ::std::basic_string_view<char_type>() const             \
8405
            {                                                                \
8406
                return ::scn::detail::compile_string_to_view<char_type>(s);  \
8407
            }                                                                \
8408
        };                                                                   \
8409
        return SCN_COMPILE_STRING{};                                         \
8410
    }()
8411
8412
#define SCN_STRING(s) SCN_STRING_IMPL(s, ::scn::detail::compile_string, )
8413
8414
/**
8415
 * Compile-time format string
8416
 *
8417
 * \ingroup format-string
8418
 */
8419
template <typename CharT, typename Source, typename... Args>
8420
class basic_scan_format_string {
8421
public:
8422
    SCN_CLANG_PUSH
8423
#if SCN_CLANG >= SCN_COMPILER(10, 0, 0)
8424
    SCN_CLANG_IGNORE("-Wc++20-compat")  // false positive about consteval
8425
#endif
8426
    template <
8427
        typename S,
8428
        std::enable_if_t<
8429
            std::is_convertible_v<const S&, std::basic_string_view<CharT>> &&
8430
            detail::is_not_self<S, basic_scan_format_string>>* = nullptr>
8431
0
    SCN_CONSTEVAL basic_scan_format_string(const S& s) : m_str(s)
8432
0
    {
8433
#if SCN_HAS_CONSTEVAL
8434
        using checker = detail::format_string_checker<CharT, Source, Args...>;
8435
        const auto e = detail::parse_format_string<true>(m_str, checker(s));
8436
        SCN_UNUSED(e);
8437
#else
8438
0
        detail::check_format_string<Source, Args...>(s);
8439
0
#endif
8440
0
    }
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIcNS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEEJNSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEC2IA9_cTnPNSC_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NSC_17basic_string_viewIcSF_EEEsr6detailE11is_not_selfISN_SJ_EEvE4typeELPv0EEESP_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIcRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEJdEEC2IA3_cTnPNS2_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NS2_17basic_string_viewIcS5_EEEsr6detailE11is_not_selfISE_SA_EEvE4typeELPv0EEESG_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIcNS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEEJNSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEC2IA19_cTnPNSC_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NSC_17basic_string_viewIcSF_EEEsr6detailE11is_not_selfISN_SJ_EEvE4typeELPv0EEESP_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIcNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEJNSt3__112basic_stringIcNS9_11char_traitsIcEENS9_9allocatorIcEEEEEEC2IA9_cTnPNS9_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NS9_17basic_string_viewIcSC_EEEsr6detailE11is_not_selfISK_SG_EEvE4typeELPv0EEESM_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIcNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEJNSt3__112basic_stringIcNS9_11char_traitsIcEENS9_9allocatorIcEEEEEEC2IA19_cTnPNS9_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NS9_17basic_string_viewIcSC_EEEsr6detailE11is_not_selfISK_SG_EEvE4typeELPv0EEESM_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIwNS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_18default_sentinel_tEEEJNSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEC2IA9_wTnPNSC_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NSC_17basic_string_viewIwNSE_IwEEEEEsr6detailE11is_not_selfISN_SJ_EEvE4typeELPv0EEESP_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIwNS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_18default_sentinel_tEEEJNSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEC2IA19_wTnPNSC_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NSC_17basic_string_viewIwNSE_IwEEEEEsr6detailE11is_not_selfISN_SJ_EEvE4typeELPv0EEESP_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIwNS0_6ranges6detail9subrange_8subrangeIPKwS7_EEJNSt3__112basic_stringIcNS9_11char_traitsIcEENS9_9allocatorIcEEEEEEC2IA9_wTnPNS9_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NS9_17basic_string_viewIwNSB_IwEEEEEsr6detailE11is_not_selfISK_SG_EEvE4typeELPv0EEESM_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIwNS0_6ranges6detail9subrange_8subrangeIPKwS7_EEJNSt3__112basic_stringIcNS9_11char_traitsIcEENS9_9allocatorIcEEEEEEC2IA19_wTnPNS9_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NS9_17basic_string_viewIwNSB_IwEEEEEsr6detailE11is_not_selfISK_SG_EEvE4typeELPv0EEESM_
8441
    SCN_CLANG_POP
8442
8443
    template <
8444
        typename OtherSource,
8445
        std::enable_if_t<std::is_same_v<detail::remove_cvref_t<Source>,
8446
                                        detail::remove_cvref_t<OtherSource>> &&
8447
                         ranges::borrowed_range<Source> ==
8448
                             ranges::borrowed_range<OtherSource>>* = nullptr>
8449
    constexpr basic_scan_format_string(
8450
        const basic_scan_format_string<CharT, OtherSource, Args...>& other)
8451
        : m_str(other.get())
8452
    {
8453
    }
8454
8455
    basic_scan_format_string(detail::basic_runtime_format_string<CharT> r)
8456
8.29M
        : m_str(r.str)
8457
8.29M
    {
8458
8.29M
    }
scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<char>)
Line
Count
Source
8456
243k
        : m_str(r.str)
8457
243k
    {
8458
243k
    }
scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<char>)
Line
Count
Source
8456
243k
        : m_str(r.str)
8457
243k
    {
8458
243k
    }
scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<char>)
Line
Count
Source
8456
290k
        : m_str(r.str)
8457
290k
    {
8458
290k
    }
scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
8456
2.50M
        : m_str(r.str)
8457
2.50M
    {
8458
2.50M
    }
scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
8456
2.50M
        : m_str(r.str)
8457
2.50M
    {
8458
2.50M
    }
scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
8456
2.50M
        : m_str(r.str)
8457
2.50M
    {
8458
2.50M
    }
8459
8460
    constexpr operator std::basic_string_view<CharT>() const
8461
8.29M
    {
8462
8.29M
        return m_str;
8463
8.29M
    }
scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
8461
243k
    {
8462
243k
        return m_str;
8463
243k
    }
scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
8461
243k
    {
8462
243k
        return m_str;
8463
243k
    }
scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
8461
290k
    {
8462
290k
        return m_str;
8463
290k
    }
scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
8461
2.50M
    {
8462
2.50M
        return m_str;
8463
2.50M
    }
scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
8461
2.50M
    {
8462
2.50M
        return m_str;
8463
2.50M
    }
scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
8461
2.50M
    {
8462
2.50M
        return m_str;
8463
2.50M
    }
Unexecuted instantiation: scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Unexecuted instantiation: scn::v4::basic_scan_format_string<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, double>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Unexecuted instantiation: scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Unexecuted instantiation: scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
8464
    constexpr std::basic_string_view<CharT> get() const
8465
    {
8466
        return m_str;
8467
    }
8468
8469
private:
8470
    std::basic_string_view<CharT> m_str;
8471
};
8472
8473
namespace detail {
8474
class locale_ref {
8475
#if !SCN_DISABLE_LOCALE
8476
public:
8477
10.2M
    constexpr locale_ref() = default;
8478
8479
    template <typename Locale>
8480
    explicit locale_ref(const Locale& loc);
8481
8482
    constexpr explicit operator bool() const noexcept
8483
0
    {
8484
0
        return m_locale != nullptr;
8485
0
    }
8486
8487
    template <typename Locale>
8488
    Locale get() const;
8489
8490
private:
8491
    const void* m_locale{nullptr};
8492
#else
8493
public:
8494
    constexpr locale_ref() = default;
8495
8496
    template <typename T>
8497
    constexpr explicit locale_ref(T&&)
8498
    {
8499
    }
8500
8501
    constexpr explicit operator bool() const noexcept
8502
    {
8503
        return true;
8504
    }
8505
#endif
8506
};
8507
}  // namespace detail
8508
8509
/////////////////////////////////////////////////////////////////
8510
// scan_context
8511
/////////////////////////////////////////////////////////////////
8512
8513
namespace detail {
8514
template <typename I>
8515
using apply_cmp_with_nullptr = decltype(SCN_DECLVAL(const I&) == nullptr);
8516
template <typename I>
8517
inline constexpr bool is_comparable_with_nullptr =
8518
    mp_valid_v<apply_cmp_with_nullptr, I>;
8519
8520
template <typename Args>
8521
class scan_context_base {
8522
public:
8523
    /// Get argument at index `id`
8524
    constexpr auto arg(size_t id) const noexcept
8525
4.23M
    {
8526
4.23M
        return m_args.get(id);
8527
4.23M
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::arg(unsigned long) const
Line
Count
Source
8525
420k
    {
8526
420k
        return m_args.get(id);
8527
420k
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::arg(unsigned long) const
Line
Count
Source
8525
3.81M
    {
8526
3.81M
        return m_args.get(id);
8527
3.81M
    }
8528
8529
    constexpr const Args& args() const
8530
0
    {
8531
0
        return m_args;
8532
0
    }
Unexecuted instantiation: scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::args() const
Unexecuted instantiation: scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::args() const
8533
8534
    SCN_NODISCARD constexpr locale_ref locale() const
8535
4.14M
    {
8536
4.14M
        return m_locale;
8537
4.14M
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::locale() const
Line
Count
Source
8535
392k
    {
8536
392k
        return m_locale;
8537
392k
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::locale() const
Line
Count
Source
8535
3.75M
    {
8536
3.75M
        return m_locale;
8537
3.75M
    }
8538
8539
protected:
8540
    scan_context_base(Args args, locale_ref loc)
8541
4.23M
        : m_args(SCN_MOVE(args)), m_locale(SCN_MOVE(loc))
8542
4.23M
    {
8543
4.23M
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::scan_context_base(scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >, scn::v4::detail::locale_ref)
Line
Count
Source
8541
420k
        : m_args(SCN_MOVE(args)), m_locale(SCN_MOVE(loc))
8542
420k
    {
8543
420k
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::scan_context_base(scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >, scn::v4::detail::locale_ref)
Line
Count
Source
8541
3.81M
        : m_args(SCN_MOVE(args)), m_locale(SCN_MOVE(loc))
8542
3.81M
    {
8543
3.81M
    }
8544
8545
    Args m_args;
8546
    locale_ref m_locale;
8547
};
8548
}  // namespace detail
8549
8550
/**
8551
 * \defgroup ctx Contexts and scanners
8552
 *
8553
 * \brief Lower-level APIs used for scanning individual values
8554
 *
8555
 * \section user-defined Scanning user-defined types
8556
 *
8557
 * User-defined types can be scanned by specializing the class template
8558
 * `scn::scanner`.
8559
 *
8560
 * \code{.cpp}
8561
 * struct mytype {
8562
 *   int key;
8563
 *   std::string value;
8564
 * };
8565
 *
8566
 * template <>
8567
 * struct scn::scanner<mytype> {
8568
 *   template <typename ParseContext>
8569
 *   constexpr auto parse(ParseCtx& pctx)
8570
 *     -> typename ParseContext::iterator {
8571
 *     // parse() implementation just returning begin():
8572
 *     // only permits empty format specifiers
8573
 *     return pctx.begin();
8574
 *   }
8575
 *
8576
 *   template <typename Context>
8577
 *   auto scan(mytype& val, Context& ctx)
8578
 *     -> scan_expected<typename Context::iterator> {
8579
 *     return scn::scan<int, std::string>(ctx.range(), "{}: {}")
8580
 *       .transform([&](auto result) {
8581
 *         std::tie(val.key, val.value) = std::move(result->values());
8582
 *         return result.begin();
8583
 *       });
8584
 *   }
8585
 * };
8586
 * \endcode
8587
 *
8588
 * See also
8589
 * \ref g-usertypes
8590
 */
8591
8592
/**
8593
 * Scanning context.
8594
 *
8595
 * \ingroup ctx
8596
 */
8597
template <typename Range, typename CharT>
8598
class basic_scan_context
8599
    : public detail::scan_context_base<
8600
          basic_scan_args<basic_scan_context<Range, CharT>>> {
8601
    using base = detail::scan_context_base<basic_scan_args<basic_scan_context>>;
8602
8603
    using args_type = basic_scan_args<basic_scan_context>;
8604
    using arg_type = basic_scan_arg<basic_scan_context>;
8605
8606
public:
8607
    /// Character type of the input
8608
    using char_type = CharT;
8609
    using range_type = std::conditional_t<
8610
        std::is_same_v<Range, detail::buffer_range_tag>,
8611
        typename detail::basic_scan_buffer<char_type>::range_type,
8612
        Range>;
8613
    using iterator = ranges::iterator_t<range_type>;
8614
    using sentinel = ranges::sentinel_t<range_type>;
8615
    using parse_context_type = basic_scan_parse_context<char_type>;
8616
8617
    /**
8618
     * The scanner type associated with this scanning context.
8619
     */
8620
    template <typename T>
8621
    using scanner_type = scanner<T, char_type>;
8622
8623
    constexpr basic_scan_context(iterator curr,
8624
                                 args_type a,
8625
                                 detail::locale_ref loc = {})
8626
1.42M
        : base(SCN_MOVE(a), loc), m_current(curr)
8627
1.42M
    {
8628
1.42M
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>::basic_scan_context(scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >, scn::v4::detail::locale_ref)
Line
Count
Source
8626
156k
        : base(SCN_MOVE(a), loc), m_current(curr)
8627
156k
    {
8628
156k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>::basic_scan_context(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >, scn::v4::detail::locale_ref)
Line
Count
Source
8626
1.27M
        : base(SCN_MOVE(a), loc), m_current(curr)
8627
1.27M
    {
8628
1.27M
    }
8629
8630
    basic_scan_context(const basic_scan_context&) = delete;
8631
    basic_scan_context& operator=(const basic_scan_context&) = delete;
8632
8633
    basic_scan_context(basic_scan_context&&) = default;
8634
    basic_scan_context& operator=(basic_scan_context&&) = default;
8635
    ~basic_scan_context() = default;
8636
8637
    /**
8638
     * Returns an iterator pointing to the current position in the source
8639
     * range.
8640
     */
8641
    constexpr iterator begin() const
8642
4.18M
    {
8643
4.18M
        return m_current;
8644
4.18M
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>::begin() const
Line
Count
Source
8642
435k
    {
8643
435k
        return m_current;
8644
435k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>::begin() const
Line
Count
Source
8642
3.74M
    {
8643
3.74M
        return m_current;
8644
3.74M
    }
8645
8646
    /**
8647
     * Returns a sentinel pointing to the end of the source range.
8648
     */
8649
    constexpr sentinel end() const
8650
1.39M
    {
8651
1.39M
        return ranges::default_sentinel;
8652
1.39M
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>::end() const
Line
Count
Source
8650
146k
    {
8651
146k
        return ranges::default_sentinel;
8652
146k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>::end() const
Line
Count
Source
8650
1.25M
    {
8651
1.25M
        return ranges::default_sentinel;
8652
1.25M
    }
8653
8654
    /**
8655
     * Returns a subrange over `[begin(), end())`
8656
     */
8657
    constexpr auto range() const
8658
1.39M
    {
8659
1.39M
        return ranges::subrange{begin(), end()};
8660
1.39M
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>::range() const
Line
Count
Source
8658
146k
    {
8659
146k
        return ranges::subrange{begin(), end()};
8660
146k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>::range() const
Line
Count
Source
8658
1.25M
    {
8659
1.25M
        return ranges::subrange{begin(), end()};
8660
1.25M
    }
8661
8662
    /// Advances the beginning of the source range to `it`
8663
    void advance_to(iterator it)
8664
1.35M
    {
8665
1.35M
        m_current = SCN_MOVE(it);
8666
1.35M
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>::advance_to(scn::v4::detail::basic_scan_buffer<char>::forward_iterator)
Line
Count
Source
8664
132k
    {
8665
132k
        m_current = SCN_MOVE(it);
8666
132k
    }
scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>::advance_to(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator)
Line
Count
Source
8664
1.22M
    {
8665
1.22M
        m_current = SCN_MOVE(it);
8666
1.22M
    }
8667
8668
private:
8669
    iterator m_current;
8670
};
8671
8672
namespace detail {
8673
template <typename T, typename ParseCtx>
8674
constexpr typename ParseCtx::iterator scanner_parse_for_builtin_type(
8675
    ParseCtx& pctx,
8676
    format_specs& specs);
8677
8678
template <typename T, typename Context>
8679
scan_expected<typename Context::iterator>
8680
scanner_scan_for_builtin_type(T& val, Context& ctx, const format_specs& specs);
8681
}  // namespace detail
8682
8683
/////////////////////////////////////////////////////////////////
8684
// scanner
8685
/////////////////////////////////////////////////////////////////
8686
8687
/**
8688
 * `scanner` specialization for all built-in types
8689
 *
8690
 * \ingroup ctx
8691
 */
8692
template <typename T, typename CharT>
8693
struct scanner<T,
8694
               CharT,
8695
               std::enable_if_t<detail::arg_type_constant<T, CharT>::value !=
8696
                                    detail::arg_type::custom_type &&
8697
                                !detail::is_type_disabled<T>>> {
8698
    template <typename ParseCtx>
8699
    constexpr auto parse(ParseCtx& pctx) -> typename ParseCtx::iterator
8700
    {
8701
        return detail::scanner_parse_for_builtin_type<T>(pctx, m_specs);
8702
    }
8703
8704
    template <typename Context>
8705
    scan_expected<typename Context::iterator> scan(T& val, Context& ctx) const
8706
    {
8707
        return detail::scanner_scan_for_builtin_type(val, ctx, m_specs);
8708
    }
8709
8710
    constexpr auto& _format_specs()
8711
    {
8712
        return m_specs;
8713
    }
8714
8715
private:
8716
    detail::format_specs m_specs;
8717
};
8718
8719
namespace detail {
8720
template <typename T, typename ParseCtx>
8721
constexpr typename ParseCtx::iterator scanner_parse_for_builtin_type(
8722
    ParseCtx& pctx,
8723
    format_specs& specs)
8724
{
8725
    using char_type = typename ParseCtx::char_type;
8726
8727
    auto begin = pctx.begin();
8728
    const auto end = pctx.end();
8729
    if (begin == end) {
8730
        return begin;
8731
    }
8732
8733
    using handler_type = specs_setter;
8734
    const auto type = arg_type_constant<T, char_type>::value;
8735
    auto checker =
8736
        detail::specs_checker<handler_type>(handler_type(specs), type);
8737
8738
    const auto it =
8739
        detail::parse_format_specs(to_address(begin), to_address(end), checker);
8740
8741
    switch (type) {
8742
        case arg_type::none_type:
8743
            SCN_FALLTHROUGH;
8744
        case arg_type::custom_type:
8745
            SCN_ENSURE(false);
8746
            break;
8747
8748
        case arg_type::bool_type:
8749
            check_bool_type_specs(specs, checker);
8750
            break;
8751
8752
        case arg_type::schar_type:
8753
        case arg_type::short_type:
8754
        case arg_type::int_type:
8755
        case arg_type::long_type:
8756
        case arg_type::llong_type:
8757
        case arg_type::uchar_type:
8758
        case arg_type::ushort_type:
8759
        case arg_type::uint_type:
8760
        case arg_type::ulong_type:
8761
        case arg_type::ullong_type:
8762
            check_int_type_specs(specs, checker);
8763
            break;
8764
8765
        case arg_type::narrow_character_type:
8766
        case arg_type::wide_character_type:
8767
        case arg_type::code_point_type:
8768
            check_char_type_specs(specs, checker);
8769
            break;
8770
8771
        case arg_type::float_type:
8772
        case arg_type::double_type:
8773
        case arg_type::ldouble_type:
8774
            check_float_type_specs(specs, checker);
8775
            break;
8776
8777
        case arg_type::narrow_string_type:
8778
        case arg_type::narrow_string_view_type:
8779
        case arg_type::wide_string_type:
8780
        case arg_type::wide_string_view_type:
8781
            check_string_type_specs(specs, checker);
8782
            break;
8783
8784
        case arg_type::pointer_type:
8785
            check_pointer_type_specs(specs, checker);
8786
            break;
8787
8788
        case arg_type::narrow_regex_matches_type:
8789
        case arg_type::wide_regex_matches_type:
8790
            check_regex_type_specs(specs, checker);
8791
            break;
8792
8793
            SCN_CLANG_PUSH
8794
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8795
8796
        default:
8797
            SCN_ENSURE(false);
8798
            SCN_UNREACHABLE;
8799
8800
            SCN_CLANG_POP
8801
    }
8802
8803
    return it;
8804
}
8805
}  // namespace detail
8806
8807
/**
8808
 * Type for discarding any scanned value.
8809
 * Example:
8810
 *
8811
 * \code{.cpp}
8812
 * auto r = scn::scan<scn::discard<int>>("42", "{}");
8813
 * // r.has_value() == true
8814
 * // decltype(r->value()) is scn::discard<int>
8815
 * \endcode
8816
 *
8817
 * \ingroup format-string
8818
 */
8819
template <typename T>
8820
struct discard {
8821
    constexpr discard() = default;
8822
8823
    constexpr discard(const T&) noexcept {}
8824
    constexpr discard(T&&) noexcept {}
8825
8826
    constexpr discard& operator=(const T&) noexcept
8827
    {
8828
        return *this;
8829
    }
8830
    constexpr discard& operator=(T&&) noexcept
8831
    {
8832
        return *this;
8833
    }
8834
};
8835
8836
template <typename T, typename CharT>
8837
struct scanner<discard<T>, CharT> : public scanner<T, CharT> {
8838
    template <typename Context>
8839
    auto scan(discard<T>&, Context& ctx) const
8840
    {
8841
        T val{};
8842
        return scanner<T, CharT>::scan(val, ctx);
8843
    }
8844
};
8845
8846
namespace detail {
8847
template <typename Range>
8848
scan_expected<ranges::iterator_t<Range>> internal_skip_classic_whitespace(
8849
    Range r,
8850
    bool allow_exhaustion);
8851
8852
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(T, Context) \
8853
    extern template scan_expected<Context::iterator>         \
8854
    scanner_scan_for_builtin_type(T&, Context&, const format_specs&);
8855
8856
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_CTX(Context)                   \
8857
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(char, Context)                \
8858
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(wchar_t, Context)             \
8859
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(signed char, Context)         \
8860
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(signed char, Context)         \
8861
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(short, Context)               \
8862
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(int, Context)                 \
8863
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(long, Context)                \
8864
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(long long, Context)           \
8865
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned char, Context)       \
8866
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned short, Context)      \
8867
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned int, Context)        \
8868
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned long, Context)       \
8869
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned long long, Context)  \
8870
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(float, Context)               \
8871
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(double, Context)              \
8872
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(long double, Context)         \
8873
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(std::string, Context)         \
8874
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(std::wstring, Context)        \
8875
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(                              \
8876
        std::basic_string_view<Context::char_type>, Context)               \
8877
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(regex_matches, Context)       \
8878
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(wregex_matches, Context)      \
8879
    extern template scan_expected<ranges::iterator_t<Context::range_type>> \
8880
    internal_skip_classic_whitespace(Context::range_type, bool);
8881
8882
SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_CTX(scan_context)
8883
8884
}  // namespace detail
8885
8886
/////////////////////////////////////////////////////////////////
8887
// visit_scan_arg
8888
/////////////////////////////////////////////////////////////////
8889
8890
namespace detail {
8891
8892
template <typename Visitor, typename Ctx>
8893
constexpr decltype(auto) visit_impl(Visitor&& vis, basic_scan_arg<Ctx>& arg)
8894
10.2M
{
8895
10.2M
#define SCN_VISIT(Type)                                                \
8896
35.9M
    if constexpr (!detail::is_type_disabled<Type>) {                   \
8897
35.9M
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
8898
35.9M
    }                                                                  \
8899
35.9M
    else {                                                             \
8900
35.9M
        return vis(monostate_val);                                     \
8901
35.9M
    }
8902
8903
10.2M
    monostate monostate_val{};
8904
8905
10.2M
    switch (get_arg_type(arg)) {
8906
0
        case detail::arg_type::schar_type:
8907
0
            SCN_VISIT(signed char);
8908
0
        case detail::arg_type::short_type:
8909
0
            SCN_VISIT(short);
8910
0
        case detail::arg_type::int_type:
8911
0
            SCN_VISIT(int);
8912
0
        case detail::arg_type::long_type:
8913
0
            SCN_VISIT(long);
8914
0
        case detail::arg_type::llong_type:
8915
0
            SCN_VISIT(long long);
8916
0
        case detail::arg_type::uchar_type:
8917
0
            SCN_VISIT(unsigned char);
8918
0
        case detail::arg_type::ushort_type:
8919
0
            SCN_VISIT(unsigned short);
8920
0
        case detail::arg_type::uint_type:
8921
0
            SCN_VISIT(unsigned);
8922
0
        case detail::arg_type::ulong_type:
8923
0
            SCN_VISIT(unsigned long);
8924
0
        case detail::arg_type::ullong_type:
8925
0
            SCN_VISIT(unsigned long long);
8926
0
        case detail::arg_type::pointer_type:
8927
0
            SCN_VISIT(void*);
8928
0
        case detail::arg_type::bool_type:
8929
0
            SCN_VISIT(bool);
8930
0
        case detail::arg_type::narrow_character_type:
8931
0
            SCN_VISIT(char);
8932
0
        case detail::arg_type::wide_character_type:
8933
0
            SCN_VISIT(wchar_t);
8934
0
        case detail::arg_type::code_point_type:
8935
0
            SCN_VISIT(char32_t);
8936
0
        case detail::arg_type::float_type:
8937
0
            SCN_VISIT(float);
8938
0
        case detail::arg_type::double_type:
8939
0
            SCN_VISIT(double);
8940
0
        case detail::arg_type::ldouble_type:
8941
0
            SCN_VISIT(long double);
8942
288k
        case detail::arg_type::narrow_string_view_type:
8943
288k
            SCN_VISIT(std::string_view);
8944
926k
        case detail::arg_type::narrow_string_type:
8945
926k
            SCN_VISIT(std::string);
8946
4.02M
        case detail::arg_type::wide_string_view_type:
8947
4.02M
            SCN_VISIT(std::wstring_view);
8948
10.2M
        case detail::arg_type::wide_string_type:
8949
10.2M
            SCN_VISIT(std::wstring);
8950
10.2M
        case detail::arg_type::narrow_regex_matches_type:
8951
10.2M
            SCN_VISIT(regex_matches);
8952
10.2M
        case detail::arg_type::wide_regex_matches_type:
8953
10.2M
            SCN_VISIT(wregex_matches);
8954
8955
10.2M
        case detail::arg_type::custom_type:
8956
10.2M
#if !SCN_DISABLE_TYPE_CUSTOM
8957
10.2M
            return vis(typename basic_scan_arg<Ctx>::handle(
8958
10.2M
                get_arg_value(arg).custom_value));
8959
#else
8960
            return vis(monostate_val);
8961
#endif
8962
8963
0
            SCN_CLANG_PUSH
8964
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8965
8966
0
            SCN_UNLIKELY_ATTR
8967
0
        case detail::arg_type::none_type:
8968
0
        default: {
8969
0
            return vis(monostate_val);
8970
0
        }
8971
8972
10.2M
            SCN_CLANG_POP
8973
10.2M
    }
8974
8975
0
#undef SCN_VISIT
8976
8977
0
    SCN_ENSURE(false);
8978
0
    SCN_UNREACHABLE;
8979
0
}
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Line
Count
Source
8894
332k
{
8895
332k
#define SCN_VISIT(Type)                                                \
8896
332k
    if constexpr (!detail::is_type_disabled<Type>) {                   \
8897
332k
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
8898
332k
    }                                                                  \
8899
332k
    else {                                                             \
8900
332k
        return vis(monostate_val);                                     \
8901
332k
    }
8902
8903
332k
    monostate monostate_val{};
8904
8905
332k
    switch (get_arg_type(arg)) {
8906
0
        case detail::arg_type::schar_type:
8907
0
            SCN_VISIT(signed char);
8908
0
        case detail::arg_type::short_type:
8909
0
            SCN_VISIT(short);
8910
0
        case detail::arg_type::int_type:
8911
0
            SCN_VISIT(int);
8912
0
        case detail::arg_type::long_type:
8913
0
            SCN_VISIT(long);
8914
0
        case detail::arg_type::llong_type:
8915
0
            SCN_VISIT(long long);
8916
0
        case detail::arg_type::uchar_type:
8917
0
            SCN_VISIT(unsigned char);
8918
0
        case detail::arg_type::ushort_type:
8919
0
            SCN_VISIT(unsigned short);
8920
0
        case detail::arg_type::uint_type:
8921
0
            SCN_VISIT(unsigned);
8922
0
        case detail::arg_type::ulong_type:
8923
0
            SCN_VISIT(unsigned long);
8924
0
        case detail::arg_type::ullong_type:
8925
0
            SCN_VISIT(unsigned long long);
8926
0
        case detail::arg_type::pointer_type:
8927
0
            SCN_VISIT(void*);
8928
0
        case detail::arg_type::bool_type:
8929
0
            SCN_VISIT(bool);
8930
0
        case detail::arg_type::narrow_character_type:
8931
0
            SCN_VISIT(char);
8932
0
        case detail::arg_type::wide_character_type:
8933
0
            SCN_VISIT(wchar_t);
8934
0
        case detail::arg_type::code_point_type:
8935
0
            SCN_VISIT(char32_t);
8936
0
        case detail::arg_type::float_type:
8937
0
            SCN_VISIT(float);
8938
0
        case detail::arg_type::double_type:
8939
0
            SCN_VISIT(double);
8940
0
        case detail::arg_type::ldouble_type:
8941
0
            SCN_VISIT(long double);
8942
166k
        case detail::arg_type::narrow_string_view_type:
8943
166k
            SCN_VISIT(std::string_view);
8944
332k
        case detail::arg_type::narrow_string_type:
8945
332k
            SCN_VISIT(std::string);
8946
332k
        case detail::arg_type::wide_string_view_type:
8947
332k
            SCN_VISIT(std::wstring_view);
8948
332k
        case detail::arg_type::wide_string_type:
8949
332k
            SCN_VISIT(std::wstring);
8950
332k
        case detail::arg_type::narrow_regex_matches_type:
8951
332k
            SCN_VISIT(regex_matches);
8952
332k
        case detail::arg_type::wide_regex_matches_type:
8953
332k
            SCN_VISIT(wregex_matches);
8954
8955
332k
        case detail::arg_type::custom_type:
8956
332k
#if !SCN_DISABLE_TYPE_CUSTOM
8957
332k
            return vis(typename basic_scan_arg<Ctx>::handle(
8958
332k
                get_arg_value(arg).custom_value));
8959
#else
8960
            return vis(monostate_val);
8961
#endif
8962
8963
0
            SCN_CLANG_PUSH
8964
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8965
8966
0
            SCN_UNLIKELY_ATTR
8967
0
        case detail::arg_type::none_type:
8968
0
        default: {
8969
0
            return vis(monostate_val);
8970
0
        }
8971
8972
332k
            SCN_CLANG_POP
8973
332k
    }
8974
8975
0
#undef SCN_VISIT
8976
8977
0
    SCN_ENSURE(false);
8978
0
    SCN_UNREACHABLE;
8979
0
}
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Line
Count
Source
8894
201k
{
8895
201k
#define SCN_VISIT(Type)                                                \
8896
201k
    if constexpr (!detail::is_type_disabled<Type>) {                   \
8897
201k
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
8898
201k
    }                                                                  \
8899
201k
    else {                                                             \
8900
201k
        return vis(monostate_val);                                     \
8901
201k
    }
8902
8903
201k
    monostate monostate_val{};
8904
8905
201k
    switch (get_arg_type(arg)) {
8906
0
        case detail::arg_type::schar_type:
8907
0
            SCN_VISIT(signed char);
8908
0
        case detail::arg_type::short_type:
8909
0
            SCN_VISIT(short);
8910
0
        case detail::arg_type::int_type:
8911
0
            SCN_VISIT(int);
8912
0
        case detail::arg_type::long_type:
8913
0
            SCN_VISIT(long);
8914
0
        case detail::arg_type::llong_type:
8915
0
            SCN_VISIT(long long);
8916
0
        case detail::arg_type::uchar_type:
8917
0
            SCN_VISIT(unsigned char);
8918
0
        case detail::arg_type::ushort_type:
8919
0
            SCN_VISIT(unsigned short);
8920
0
        case detail::arg_type::uint_type:
8921
0
            SCN_VISIT(unsigned);
8922
0
        case detail::arg_type::ulong_type:
8923
0
            SCN_VISIT(unsigned long);
8924
0
        case detail::arg_type::ullong_type:
8925
0
            SCN_VISIT(unsigned long long);
8926
0
        case detail::arg_type::pointer_type:
8927
0
            SCN_VISIT(void*);
8928
0
        case detail::arg_type::bool_type:
8929
0
            SCN_VISIT(bool);
8930
0
        case detail::arg_type::narrow_character_type:
8931
0
            SCN_VISIT(char);
8932
0
        case detail::arg_type::wide_character_type:
8933
0
            SCN_VISIT(wchar_t);
8934
0
        case detail::arg_type::code_point_type:
8935
0
            SCN_VISIT(char32_t);
8936
0
        case detail::arg_type::float_type:
8937
0
            SCN_VISIT(float);
8938
0
        case detail::arg_type::double_type:
8939
0
            SCN_VISIT(double);
8940
0
        case detail::arg_type::ldouble_type:
8941
0
            SCN_VISIT(long double);
8942
0
        case detail::arg_type::narrow_string_view_type:
8943
0
            SCN_VISIT(std::string_view);
8944
201k
        case detail::arg_type::narrow_string_type:
8945
201k
            SCN_VISIT(std::string);
8946
201k
        case detail::arg_type::wide_string_view_type:
8947
201k
            SCN_VISIT(std::wstring_view);
8948
201k
        case detail::arg_type::wide_string_type:
8949
201k
            SCN_VISIT(std::wstring);
8950
201k
        case detail::arg_type::narrow_regex_matches_type:
8951
201k
            SCN_VISIT(regex_matches);
8952
201k
        case detail::arg_type::wide_regex_matches_type:
8953
201k
            SCN_VISIT(wregex_matches);
8954
8955
201k
        case detail::arg_type::custom_type:
8956
201k
#if !SCN_DISABLE_TYPE_CUSTOM
8957
201k
            return vis(typename basic_scan_arg<Ctx>::handle(
8958
201k
                get_arg_value(arg).custom_value));
8959
#else
8960
            return vis(monostate_val);
8961
#endif
8962
8963
0
            SCN_CLANG_PUSH
8964
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8965
8966
0
            SCN_UNLIKELY_ATTR
8967
0
        case detail::arg_type::none_type:
8968
0
        default: {
8969
0
            return vis(monostate_val);
8970
0
        }
8971
8972
201k
            SCN_CLANG_POP
8973
201k
    }
8974
8975
0
#undef SCN_VISIT
8976
8977
0
    SCN_ENSURE(false);
8978
0
    SCN_UNREACHABLE;
8979
0
}
Unexecuted instantiation: decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Line
Count
Source
8894
245k
{
8895
245k
#define SCN_VISIT(Type)                                                \
8896
245k
    if constexpr (!detail::is_type_disabled<Type>) {                   \
8897
245k
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
8898
245k
    }                                                                  \
8899
245k
    else {                                                             \
8900
245k
        return vis(monostate_val);                                     \
8901
245k
    }
8902
8903
245k
    monostate monostate_val{};
8904
8905
245k
    switch (get_arg_type(arg)) {
8906
0
        case detail::arg_type::schar_type:
8907
0
            SCN_VISIT(signed char);
8908
0
        case detail::arg_type::short_type:
8909
0
            SCN_VISIT(short);
8910
0
        case detail::arg_type::int_type:
8911
0
            SCN_VISIT(int);
8912
0
        case detail::arg_type::long_type:
8913
0
            SCN_VISIT(long);
8914
0
        case detail::arg_type::llong_type:
8915
0
            SCN_VISIT(long long);
8916
0
        case detail::arg_type::uchar_type:
8917
0
            SCN_VISIT(unsigned char);
8918
0
        case detail::arg_type::ushort_type:
8919
0
            SCN_VISIT(unsigned short);
8920
0
        case detail::arg_type::uint_type:
8921
0
            SCN_VISIT(unsigned);
8922
0
        case detail::arg_type::ulong_type:
8923
0
            SCN_VISIT(unsigned long);
8924
0
        case detail::arg_type::ullong_type:
8925
0
            SCN_VISIT(unsigned long long);
8926
0
        case detail::arg_type::pointer_type:
8927
0
            SCN_VISIT(void*);
8928
0
        case detail::arg_type::bool_type:
8929
0
            SCN_VISIT(bool);
8930
0
        case detail::arg_type::narrow_character_type:
8931
0
            SCN_VISIT(char);
8932
0
        case detail::arg_type::wide_character_type:
8933
0
            SCN_VISIT(wchar_t);
8934
0
        case detail::arg_type::code_point_type:
8935
0
            SCN_VISIT(char32_t);
8936
0
        case detail::arg_type::float_type:
8937
0
            SCN_VISIT(float);
8938
0
        case detail::arg_type::double_type:
8939
0
            SCN_VISIT(double);
8940
0
        case detail::arg_type::ldouble_type:
8941
0
            SCN_VISIT(long double);
8942
122k
        case detail::arg_type::narrow_string_view_type:
8943
122k
            SCN_VISIT(std::string_view);
8944
245k
        case detail::arg_type::narrow_string_type:
8945
245k
            SCN_VISIT(std::string);
8946
245k
        case detail::arg_type::wide_string_view_type:
8947
245k
            SCN_VISIT(std::wstring_view);
8948
245k
        case detail::arg_type::wide_string_type:
8949
245k
            SCN_VISIT(std::wstring);
8950
245k
        case detail::arg_type::narrow_regex_matches_type:
8951
245k
            SCN_VISIT(regex_matches);
8952
245k
        case detail::arg_type::wide_regex_matches_type:
8953
245k
            SCN_VISIT(wregex_matches);
8954
8955
245k
        case detail::arg_type::custom_type:
8956
245k
#if !SCN_DISABLE_TYPE_CUSTOM
8957
245k
            return vis(typename basic_scan_arg<Ctx>::handle(
8958
245k
                get_arg_value(arg).custom_value));
8959
#else
8960
            return vis(monostate_val);
8961
#endif
8962
8963
0
            SCN_CLANG_PUSH
8964
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8965
8966
0
            SCN_UNLIKELY_ATTR
8967
0
        case detail::arg_type::none_type:
8968
0
        default: {
8969
0
            return vis(monostate_val);
8970
0
        }
8971
8972
245k
            SCN_CLANG_POP
8973
245k
    }
8974
8975
0
#undef SCN_VISIT
8976
8977
0
    SCN_ENSURE(false);
8978
0
    SCN_UNREACHABLE;
8979
0
}
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Line
Count
Source
8894
146k
{
8895
146k
#define SCN_VISIT(Type)                                                \
8896
146k
    if constexpr (!detail::is_type_disabled<Type>) {                   \
8897
146k
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
8898
146k
    }                                                                  \
8899
146k
    else {                                                             \
8900
146k
        return vis(monostate_val);                                     \
8901
146k
    }
8902
8903
146k
    monostate monostate_val{};
8904
8905
146k
    switch (get_arg_type(arg)) {
8906
0
        case detail::arg_type::schar_type:
8907
0
            SCN_VISIT(signed char);
8908
0
        case detail::arg_type::short_type:
8909
0
            SCN_VISIT(short);
8910
0
        case detail::arg_type::int_type:
8911
0
            SCN_VISIT(int);
8912
0
        case detail::arg_type::long_type:
8913
0
            SCN_VISIT(long);
8914
0
        case detail::arg_type::llong_type:
8915
0
            SCN_VISIT(long long);
8916
0
        case detail::arg_type::uchar_type:
8917
0
            SCN_VISIT(unsigned char);
8918
0
        case detail::arg_type::ushort_type:
8919
0
            SCN_VISIT(unsigned short);
8920
0
        case detail::arg_type::uint_type:
8921
0
            SCN_VISIT(unsigned);
8922
0
        case detail::arg_type::ulong_type:
8923
0
            SCN_VISIT(unsigned long);
8924
0
        case detail::arg_type::ullong_type:
8925
0
            SCN_VISIT(unsigned long long);
8926
0
        case detail::arg_type::pointer_type:
8927
0
            SCN_VISIT(void*);
8928
0
        case detail::arg_type::bool_type:
8929
0
            SCN_VISIT(bool);
8930
0
        case detail::arg_type::narrow_character_type:
8931
0
            SCN_VISIT(char);
8932
0
        case detail::arg_type::wide_character_type:
8933
0
            SCN_VISIT(wchar_t);
8934
0
        case detail::arg_type::code_point_type:
8935
0
            SCN_VISIT(char32_t);
8936
0
        case detail::arg_type::float_type:
8937
0
            SCN_VISIT(float);
8938
0
        case detail::arg_type::double_type:
8939
0
            SCN_VISIT(double);
8940
0
        case detail::arg_type::ldouble_type:
8941
0
            SCN_VISIT(long double);
8942
0
        case detail::arg_type::narrow_string_view_type:
8943
0
            SCN_VISIT(std::string_view);
8944
146k
        case detail::arg_type::narrow_string_type:
8945
146k
            SCN_VISIT(std::string);
8946
146k
        case detail::arg_type::wide_string_view_type:
8947
146k
            SCN_VISIT(std::wstring_view);
8948
146k
        case detail::arg_type::wide_string_type:
8949
146k
            SCN_VISIT(std::wstring);
8950
146k
        case detail::arg_type::narrow_regex_matches_type:
8951
146k
            SCN_VISIT(regex_matches);
8952
146k
        case detail::arg_type::wide_regex_matches_type:
8953
146k
            SCN_VISIT(wregex_matches);
8954
8955
146k
        case detail::arg_type::custom_type:
8956
146k
#if !SCN_DISABLE_TYPE_CUSTOM
8957
146k
            return vis(typename basic_scan_arg<Ctx>::handle(
8958
146k
                get_arg_value(arg).custom_value));
8959
#else
8960
            return vis(monostate_val);
8961
#endif
8962
8963
0
            SCN_CLANG_PUSH
8964
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8965
8966
0
            SCN_UNLIKELY_ATTR
8967
0
        case detail::arg_type::none_type:
8968
0
        default: {
8969
0
            return vis(monostate_val);
8970
0
        }
8971
8972
146k
            SCN_CLANG_POP
8973
146k
    }
8974
8975
0
#undef SCN_VISIT
8976
8977
0
    SCN_ENSURE(false);
8978
0
    SCN_UNREACHABLE;
8979
0
}
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Line
Count
Source
8894
3.69M
{
8895
3.69M
#define SCN_VISIT(Type)                                                \
8896
3.69M
    if constexpr (!detail::is_type_disabled<Type>) {                   \
8897
3.69M
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
8898
3.69M
    }                                                                  \
8899
3.69M
    else {                                                             \
8900
3.69M
        return vis(monostate_val);                                     \
8901
3.69M
    }
8902
8903
3.69M
    monostate monostate_val{};
8904
8905
3.69M
    switch (get_arg_type(arg)) {
8906
0
        case detail::arg_type::schar_type:
8907
0
            SCN_VISIT(signed char);
8908
0
        case detail::arg_type::short_type:
8909
0
            SCN_VISIT(short);
8910
0
        case detail::arg_type::int_type:
8911
0
            SCN_VISIT(int);
8912
0
        case detail::arg_type::long_type:
8913
0
            SCN_VISIT(long);
8914
0
        case detail::arg_type::llong_type:
8915
0
            SCN_VISIT(long long);
8916
0
        case detail::arg_type::uchar_type:
8917
0
            SCN_VISIT(unsigned char);
8918
0
        case detail::arg_type::ushort_type:
8919
0
            SCN_VISIT(unsigned short);
8920
0
        case detail::arg_type::uint_type:
8921
0
            SCN_VISIT(unsigned);
8922
0
        case detail::arg_type::ulong_type:
8923
0
            SCN_VISIT(unsigned long);
8924
0
        case detail::arg_type::ullong_type:
8925
0
            SCN_VISIT(unsigned long long);
8926
0
        case detail::arg_type::pointer_type:
8927
0
            SCN_VISIT(void*);
8928
0
        case detail::arg_type::bool_type:
8929
0
            SCN_VISIT(bool);
8930
0
        case detail::arg_type::narrow_character_type:
8931
0
            SCN_VISIT(char);
8932
0
        case detail::arg_type::wide_character_type:
8933
0
            SCN_VISIT(wchar_t);
8934
0
        case detail::arg_type::code_point_type:
8935
0
            SCN_VISIT(char32_t);
8936
0
        case detail::arg_type::float_type:
8937
0
            SCN_VISIT(float);
8938
0
        case detail::arg_type::double_type:
8939
0
            SCN_VISIT(double);
8940
0
        case detail::arg_type::ldouble_type:
8941
0
            SCN_VISIT(long double);
8942
0
        case detail::arg_type::narrow_string_view_type:
8943
0
            SCN_VISIT(std::string_view);
8944
0
        case detail::arg_type::narrow_string_type:
8945
0
            SCN_VISIT(std::string);
8946
1.84M
        case detail::arg_type::wide_string_view_type:
8947
1.84M
            SCN_VISIT(std::wstring_view);
8948
3.69M
        case detail::arg_type::wide_string_type:
8949
3.69M
            SCN_VISIT(std::wstring);
8950
3.69M
        case detail::arg_type::narrow_regex_matches_type:
8951
3.69M
            SCN_VISIT(regex_matches);
8952
3.69M
        case detail::arg_type::wide_regex_matches_type:
8953
3.69M
            SCN_VISIT(wregex_matches);
8954
8955
3.69M
        case detail::arg_type::custom_type:
8956
3.69M
#if !SCN_DISABLE_TYPE_CUSTOM
8957
3.69M
            return vis(typename basic_scan_arg<Ctx>::handle(
8958
3.69M
                get_arg_value(arg).custom_value));
8959
#else
8960
            return vis(monostate_val);
8961
#endif
8962
8963
0
            SCN_CLANG_PUSH
8964
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8965
8966
0
            SCN_UNLIKELY_ATTR
8967
0
        case detail::arg_type::none_type:
8968
0
        default: {
8969
0
            return vis(monostate_val);
8970
0
        }
8971
8972
3.69M
            SCN_CLANG_POP
8973
3.69M
    }
8974
8975
0
#undef SCN_VISIT
8976
8977
0
    SCN_ENSURE(false);
8978
0
    SCN_UNREACHABLE;
8979
0
}
Unexecuted instantiation: decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Line
Count
Source
8894
2.50M
{
8895
2.50M
#define SCN_VISIT(Type)                                                \
8896
2.50M
    if constexpr (!detail::is_type_disabled<Type>) {                   \
8897
2.50M
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
8898
2.50M
    }                                                                  \
8899
2.50M
    else {                                                             \
8900
2.50M
        return vis(monostate_val);                                     \
8901
2.50M
    }
8902
8903
2.50M
    monostate monostate_val{};
8904
8905
2.50M
    switch (get_arg_type(arg)) {
8906
0
        case detail::arg_type::schar_type:
8907
0
            SCN_VISIT(signed char);
8908
0
        case detail::arg_type::short_type:
8909
0
            SCN_VISIT(short);
8910
0
        case detail::arg_type::int_type:
8911
0
            SCN_VISIT(int);
8912
0
        case detail::arg_type::long_type:
8913
0
            SCN_VISIT(long);
8914
0
        case detail::arg_type::llong_type:
8915
0
            SCN_VISIT(long long);
8916
0
        case detail::arg_type::uchar_type:
8917
0
            SCN_VISIT(unsigned char);
8918
0
        case detail::arg_type::ushort_type:
8919
0
            SCN_VISIT(unsigned short);
8920
0
        case detail::arg_type::uint_type:
8921
0
            SCN_VISIT(unsigned);
8922
0
        case detail::arg_type::ulong_type:
8923
0
            SCN_VISIT(unsigned long);
8924
0
        case detail::arg_type::ullong_type:
8925
0
            SCN_VISIT(unsigned long long);
8926
0
        case detail::arg_type::pointer_type:
8927
0
            SCN_VISIT(void*);
8928
0
        case detail::arg_type::bool_type:
8929
0
            SCN_VISIT(bool);
8930
0
        case detail::arg_type::narrow_character_type:
8931
0
            SCN_VISIT(char);
8932
0
        case detail::arg_type::wide_character_type:
8933
0
            SCN_VISIT(wchar_t);
8934
0
        case detail::arg_type::code_point_type:
8935
0
            SCN_VISIT(char32_t);
8936
0
        case detail::arg_type::float_type:
8937
0
            SCN_VISIT(float);
8938
0
        case detail::arg_type::double_type:
8939
0
            SCN_VISIT(double);
8940
0
        case detail::arg_type::ldouble_type:
8941
0
            SCN_VISIT(long double);
8942
0
        case detail::arg_type::narrow_string_view_type:
8943
0
            SCN_VISIT(std::string_view);
8944
0
        case detail::arg_type::narrow_string_type:
8945
0
            SCN_VISIT(std::string);
8946
1.25M
        case detail::arg_type::wide_string_view_type:
8947
1.25M
            SCN_VISIT(std::wstring_view);
8948
2.50M
        case detail::arg_type::wide_string_type:
8949
2.50M
            SCN_VISIT(std::wstring);
8950
2.50M
        case detail::arg_type::narrow_regex_matches_type:
8951
2.50M
            SCN_VISIT(regex_matches);
8952
2.50M
        case detail::arg_type::wide_regex_matches_type:
8953
2.50M
            SCN_VISIT(wregex_matches);
8954
8955
2.50M
        case detail::arg_type::custom_type:
8956
2.50M
#if !SCN_DISABLE_TYPE_CUSTOM
8957
2.50M
            return vis(typename basic_scan_arg<Ctx>::handle(
8958
2.50M
                get_arg_value(arg).custom_value));
8959
#else
8960
            return vis(monostate_val);
8961
#endif
8962
8963
0
            SCN_CLANG_PUSH
8964
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8965
8966
0
            SCN_UNLIKELY_ATTR
8967
0
        case detail::arg_type::none_type:
8968
0
        default: {
8969
0
            return vis(monostate_val);
8970
0
        }
8971
8972
2.50M
            SCN_CLANG_POP
8973
2.50M
    }
8974
8975
0
#undef SCN_VISIT
8976
8977
0
    SCN_ENSURE(false);
8978
0
    SCN_UNREACHABLE;
8979
0
}
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Line
Count
Source
8894
1.84M
{
8895
1.84M
#define SCN_VISIT(Type)                                                \
8896
1.84M
    if constexpr (!detail::is_type_disabled<Type>) {                   \
8897
1.84M
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
8898
1.84M
    }                                                                  \
8899
1.84M
    else {                                                             \
8900
1.84M
        return vis(monostate_val);                                     \
8901
1.84M
    }
8902
8903
1.84M
    monostate monostate_val{};
8904
8905
1.84M
    switch (get_arg_type(arg)) {
8906
0
        case detail::arg_type::schar_type:
8907
0
            SCN_VISIT(signed char);
8908
0
        case detail::arg_type::short_type:
8909
0
            SCN_VISIT(short);
8910
0
        case detail::arg_type::int_type:
8911
0
            SCN_VISIT(int);
8912
0
        case detail::arg_type::long_type:
8913
0
            SCN_VISIT(long);
8914
0
        case detail::arg_type::llong_type:
8915
0
            SCN_VISIT(long long);
8916
0
        case detail::arg_type::uchar_type:
8917
0
            SCN_VISIT(unsigned char);
8918
0
        case detail::arg_type::ushort_type:
8919
0
            SCN_VISIT(unsigned short);
8920
0
        case detail::arg_type::uint_type:
8921
0
            SCN_VISIT(unsigned);
8922
0
        case detail::arg_type::ulong_type:
8923
0
            SCN_VISIT(unsigned long);
8924
0
        case detail::arg_type::ullong_type:
8925
0
            SCN_VISIT(unsigned long long);
8926
0
        case detail::arg_type::pointer_type:
8927
0
            SCN_VISIT(void*);
8928
0
        case detail::arg_type::bool_type:
8929
0
            SCN_VISIT(bool);
8930
0
        case detail::arg_type::narrow_character_type:
8931
0
            SCN_VISIT(char);
8932
0
        case detail::arg_type::wide_character_type:
8933
0
            SCN_VISIT(wchar_t);
8934
0
        case detail::arg_type::code_point_type:
8935
0
            SCN_VISIT(char32_t);
8936
0
        case detail::arg_type::float_type:
8937
0
            SCN_VISIT(float);
8938
0
        case detail::arg_type::double_type:
8939
0
            SCN_VISIT(double);
8940
0
        case detail::arg_type::ldouble_type:
8941
0
            SCN_VISIT(long double);
8942
0
        case detail::arg_type::narrow_string_view_type:
8943
0
            SCN_VISIT(std::string_view);
8944
0
        case detail::arg_type::narrow_string_type:
8945
0
            SCN_VISIT(std::string);
8946
0
        case detail::arg_type::wide_string_view_type:
8947
0
            SCN_VISIT(std::wstring_view);
8948
1.84M
        case detail::arg_type::wide_string_type:
8949
1.84M
            SCN_VISIT(std::wstring);
8950
1.84M
        case detail::arg_type::narrow_regex_matches_type:
8951
1.84M
            SCN_VISIT(regex_matches);
8952
1.84M
        case detail::arg_type::wide_regex_matches_type:
8953
1.84M
            SCN_VISIT(wregex_matches);
8954
8955
1.84M
        case detail::arg_type::custom_type:
8956
1.84M
#if !SCN_DISABLE_TYPE_CUSTOM
8957
1.84M
            return vis(typename basic_scan_arg<Ctx>::handle(
8958
1.84M
                get_arg_value(arg).custom_value));
8959
#else
8960
            return vis(monostate_val);
8961
#endif
8962
8963
0
            SCN_CLANG_PUSH
8964
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8965
8966
0
            SCN_UNLIKELY_ATTR
8967
0
        case detail::arg_type::none_type:
8968
0
        default: {
8969
0
            return vis(monostate_val);
8970
0
        }
8971
8972
1.84M
            SCN_CLANG_POP
8973
1.84M
    }
8974
8975
0
#undef SCN_VISIT
8976
8977
0
    SCN_ENSURE(false);
8978
0
    SCN_UNREACHABLE;
8979
0
}
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Line
Count
Source
8894
1.25M
{
8895
1.25M
#define SCN_VISIT(Type)                                                \
8896
1.25M
    if constexpr (!detail::is_type_disabled<Type>) {                   \
8897
1.25M
        return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
8898
1.25M
    }                                                                  \
8899
1.25M
    else {                                                             \
8900
1.25M
        return vis(monostate_val);                                     \
8901
1.25M
    }
8902
8903
1.25M
    monostate monostate_val{};
8904
8905
1.25M
    switch (get_arg_type(arg)) {
8906
0
        case detail::arg_type::schar_type:
8907
0
            SCN_VISIT(signed char);
8908
0
        case detail::arg_type::short_type:
8909
0
            SCN_VISIT(short);
8910
0
        case detail::arg_type::int_type:
8911
0
            SCN_VISIT(int);
8912
0
        case detail::arg_type::long_type:
8913
0
            SCN_VISIT(long);
8914
0
        case detail::arg_type::llong_type:
8915
0
            SCN_VISIT(long long);
8916
0
        case detail::arg_type::uchar_type:
8917
0
            SCN_VISIT(unsigned char);
8918
0
        case detail::arg_type::ushort_type:
8919
0
            SCN_VISIT(unsigned short);
8920
0
        case detail::arg_type::uint_type:
8921
0
            SCN_VISIT(unsigned);
8922
0
        case detail::arg_type::ulong_type:
8923
0
            SCN_VISIT(unsigned long);
8924
0
        case detail::arg_type::ullong_type:
8925
0
            SCN_VISIT(unsigned long long);
8926
0
        case detail::arg_type::pointer_type:
8927
0
            SCN_VISIT(void*);
8928
0
        case detail::arg_type::bool_type:
8929
0
            SCN_VISIT(bool);
8930
0
        case detail::arg_type::narrow_character_type:
8931
0
            SCN_VISIT(char);
8932
0
        case detail::arg_type::wide_character_type:
8933
0
            SCN_VISIT(wchar_t);
8934
0
        case detail::arg_type::code_point_type:
8935
0
            SCN_VISIT(char32_t);
8936
0
        case detail::arg_type::float_type:
8937
0
            SCN_VISIT(float);
8938
0
        case detail::arg_type::double_type:
8939
0
            SCN_VISIT(double);
8940
0
        case detail::arg_type::ldouble_type:
8941
0
            SCN_VISIT(long double);
8942
0
        case detail::arg_type::narrow_string_view_type:
8943
0
            SCN_VISIT(std::string_view);
8944
0
        case detail::arg_type::narrow_string_type:
8945
0
            SCN_VISIT(std::string);
8946
0
        case detail::arg_type::wide_string_view_type:
8947
0
            SCN_VISIT(std::wstring_view);
8948
1.25M
        case detail::arg_type::wide_string_type:
8949
1.25M
            SCN_VISIT(std::wstring);
8950
1.25M
        case detail::arg_type::narrow_regex_matches_type:
8951
1.25M
            SCN_VISIT(regex_matches);
8952
1.25M
        case detail::arg_type::wide_regex_matches_type:
8953
1.25M
            SCN_VISIT(wregex_matches);
8954
8955
1.25M
        case detail::arg_type::custom_type:
8956
1.25M
#if !SCN_DISABLE_TYPE_CUSTOM
8957
1.25M
            return vis(typename basic_scan_arg<Ctx>::handle(
8958
1.25M
                get_arg_value(arg).custom_value));
8959
#else
8960
            return vis(monostate_val);
8961
#endif
8962
8963
0
            SCN_CLANG_PUSH
8964
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8965
8966
0
            SCN_UNLIKELY_ATTR
8967
0
        case detail::arg_type::none_type:
8968
0
        default: {
8969
0
            return vis(monostate_val);
8970
0
        }
8971
8972
1.25M
            SCN_CLANG_POP
8973
1.25M
    }
8974
8975
0
#undef SCN_VISIT
8976
8977
0
    SCN_ENSURE(false);
8978
0
    SCN_UNREACHABLE;
8979
0
}
8980
8981
}  // namespace detail
8982
8983
template <typename Visitor, typename Ctx>
8984
[[deprecated("Use basic_scan_arg::visit instead")]] constexpr decltype(auto)
8985
visit_scan_arg(Visitor&& vis, basic_scan_arg<Ctx>& arg)
8986
{
8987
    return detail::visit_impl(SCN_FWD(vis), arg);
8988
}
8989
8990
template <typename Context>
8991
template <typename Visitor>
8992
constexpr decltype(auto) basic_scan_arg<Context>::visit(Visitor&& vis)
8993
10.2M
{
8994
10.2M
    return detail::visit_impl(SCN_FWD(vis), *this);
8995
10.2M
}
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::visit<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >&&)
Line
Count
Source
8993
332k
{
8994
332k
    return detail::visit_impl(SCN_FWD(vis), *this);
8995
332k
}
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::visit<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&)
Line
Count
Source
8993
201k
{
8994
201k
    return detail::visit_impl(SCN_FWD(vis), *this);
8995
201k
}
Unexecuted instantiation: decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::visit<scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >(scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&)
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::visit<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >&&)
Line
Count
Source
8993
245k
{
8994
245k
    return detail::visit_impl(SCN_FWD(vis), *this);
8995
245k
}
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::visit<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&)
Line
Count
Source
8993
146k
{
8994
146k
    return detail::visit_impl(SCN_FWD(vis), *this);
8995
146k
}
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::visit<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >&&)
Line
Count
Source
8993
3.69M
{
8994
3.69M
    return detail::visit_impl(SCN_FWD(vis), *this);
8995
3.69M
}
Unexecuted instantiation: decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::visit<scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >(scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&)
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::visit<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >&&)
Line
Count
Source
8993
2.50M
{
8994
2.50M
    return detail::visit_impl(SCN_FWD(vis), *this);
8995
2.50M
}
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::visit<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&)
Line
Count
Source
8993
1.84M
{
8994
1.84M
    return detail::visit_impl(SCN_FWD(vis), *this);
8995
1.84M
}
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::visit<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&)
Line
Count
Source
8993
1.25M
{
8994
1.25M
    return detail::visit_impl(SCN_FWD(vis), *this);
8995
1.25M
}
8996
8997
template <typename Context>
8998
template <typename R, typename Visitor>
8999
constexpr R basic_scan_arg<Context>::visit(Visitor&& vis)
9000
{
9001
    return detail::visit_impl(SCN_FWD(vis), *this);
9002
}
9003
9004
/////////////////////////////////////////////////////////////////
9005
// vscan
9006
/////////////////////////////////////////////////////////////////
9007
9008
/**
9009
 * \defgroup vscan Type-erased scanning API
9010
 *
9011
 * \brief Lower-level scanning API with type-erased arguments
9012
 */
9013
9014
namespace detail {
9015
template <typename Source>
9016
using scan_result_value_type =
9017
    std::conditional_t<std::is_same_v<remove_cvref_t<Source>, std::FILE*>,
9018
                       std::FILE*,
9019
                       borrowed_tail_subrange_t<Source>>;
9020
}
9021
9022
/**
9023
 * Result type returned by `vscan`.
9024
 *
9025
 * The value type of the `scan_expected` is `FILE*` if `Source` is `FILE*`,
9026
 * `detail::borrowed_tail_subrange_t<Source>` otherwise.
9027
 *
9028
 * \ingroup vscan
9029
 */
9030
template <typename Source>
9031
using vscan_result = scan_expected<detail::scan_result_value_type<Source>>;
9032
9033
namespace detail {
9034
scan_expected<std::ptrdiff_t> vscan_impl(std::string_view source,
9035
                                         std::string_view format,
9036
                                         scan_args args);
9037
scan_expected<std::ptrdiff_t> vscan_impl(scan_buffer& source,
9038
                                         std::string_view format,
9039
                                         scan_args args);
9040
9041
scan_expected<std::ptrdiff_t> vscan_impl(std::wstring_view source,
9042
                                         std::wstring_view format,
9043
                                         wscan_args args);
9044
scan_expected<std::ptrdiff_t> vscan_impl(wscan_buffer& source,
9045
                                         std::wstring_view format,
9046
                                         wscan_args args);
9047
9048
#if !SCN_DISABLE_LOCALE
9049
template <typename Locale>
9050
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
9051
                                                   std::string_view source,
9052
                                                   std::string_view format,
9053
                                                   scan_args args);
9054
template <typename Locale>
9055
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
9056
                                                   scan_buffer& source,
9057
                                                   std::string_view format,
9058
                                                   scan_args args);
9059
9060
template <typename Locale>
9061
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
9062
                                                   std::wstring_view source,
9063
                                                   std::wstring_view format,
9064
                                                   wscan_args args);
9065
template <typename Locale>
9066
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
9067
                                                   wscan_buffer& source,
9068
                                                   std::wstring_view format,
9069
                                                   wscan_args args);
9070
#endif
9071
9072
scan_expected<std::ptrdiff_t> vscan_value_impl(
9073
    std::string_view source,
9074
    basic_scan_arg<scan_context> arg);
9075
scan_expected<std::ptrdiff_t> vscan_value_impl(
9076
    scan_buffer& source,
9077
    basic_scan_arg<scan_context> arg);
9078
9079
scan_expected<std::ptrdiff_t> vscan_value_impl(
9080
    std::wstring_view source,
9081
    basic_scan_arg<wscan_context> arg);
9082
scan_expected<std::ptrdiff_t> vscan_value_impl(
9083
    wscan_buffer& source,
9084
    basic_scan_arg<wscan_context> arg);
9085
9086
template <typename Range, typename CharT>
9087
auto vscan_generic(Range&& range,
9088
                   std::basic_string_view<CharT> format,
9089
                   basic_scan_args<detail::default_context<CharT>> args)
9090
    -> vscan_result<Range>
9091
4.14M
{
9092
4.14M
    auto buffer = make_scan_buffer(range);
9093
9094
4.14M
    auto result = vscan_impl(buffer, format, args);
9095
4.14M
    if (SCN_UNLIKELY(!result)) {
9096
128k
        return unexpected(result.error());
9097
128k
    }
9098
4.01M
    return make_vscan_result_range(SCN_FWD(range), *result);
9099
4.14M
}
_ZN3scn2v46detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEcEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NSB_17basic_string_viewIT0_NSB_11char_traitsISQ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESQ_EEEE
Line
Count
Source
9091
243k
{
9092
243k
    auto buffer = make_scan_buffer(range);
9093
9094
243k
    auto result = vscan_impl(buffer, format, args);
9095
243k
    if (SCN_UNLIKELY(!result)) {
9096
28.6k
        return unexpected(result.error());
9097
28.6k
    }
9098
214k
    return make_vscan_result_range(SCN_FWD(range), *result);
9099
243k
}
_ZN3scn2v46detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEcEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS7_17basic_string_viewIT0_NS7_11char_traitsISV_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESV_EEEE
Line
Count
Source
9091
145k
{
9092
145k
    auto buffer = make_scan_buffer(range);
9093
9094
145k
    auto result = vscan_impl(buffer, format, args);
9095
145k
    if (SCN_UNLIKELY(!result)) {
9096
14.3k
        return unexpected(result.error());
9097
14.3k
    }
9098
131k
    return make_vscan_result_range(SCN_FWD(range), *result);
9099
145k
}
_ZN3scn2v46detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEwEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NSB_17basic_string_viewIT0_NSB_11char_traitsISQ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESQ_EEEE
Line
Count
Source
9091
2.50M
{
9092
2.50M
    auto buffer = make_scan_buffer(range);
9093
9094
2.50M
    auto result = vscan_impl(buffer, format, args);
9095
2.50M
    if (SCN_UNLIKELY(!result)) {
9096
57.2k
        return unexpected(result.error());
9097
57.2k
    }
9098
2.44M
    return make_vscan_result_range(SCN_FWD(range), *result);
9099
2.50M
}
_ZN3scn2v46detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEwEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS7_17basic_string_viewIT0_NS7_11char_traitsISV_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESV_EEEE
Line
Count
Source
9091
1.25M
{
9092
1.25M
    auto buffer = make_scan_buffer(range);
9093
9094
1.25M
    auto result = vscan_impl(buffer, format, args);
9095
1.25M
    if (SCN_UNLIKELY(!result)) {
9096
28.6k
        return unexpected(result.error());
9097
28.6k
    }
9098
1.22M
    return make_vscan_result_range(SCN_FWD(range), *result);
9099
1.25M
}
Unexecuted instantiation: _ZN3scn2v46detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeINS1_17basic_scan_bufferIcE16forward_iteratorENS3_18default_sentinel_tEEEcEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESJ_NS1_22borrowed_tail_subrangeISF_Xsr6rangesE14borrowed_rangeISF_EEE4typeEE4typeEEEOSF_NSD_17basic_string_viewIT0_NSD_11char_traitsISS_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESS_EEEE
Unexecuted instantiation: _ZN3scn2v46detail13vscan_genericIRNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NS3_17basic_string_viewIT0_NS5_ISQ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESQ_EEEE
Unexecuted instantiation: _ZN3scn2v46detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeINS1_17basic_scan_bufferIwE16forward_iteratorENS3_18default_sentinel_tEEEwEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESJ_NS1_22borrowed_tail_subrangeISF_Xsr6rangesE14borrowed_rangeISF_EEE4typeEE4typeEEEOSF_NSD_17basic_string_viewIT0_NSD_11char_traitsISS_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESS_EEEE
9100
9101
template <typename Locale, typename Range, typename CharT>
9102
auto vscan_localized_generic(
9103
    const Locale& loc,
9104
    Range&& range,
9105
    std::basic_string_view<CharT> format,
9106
    basic_scan_args<detail::default_context<CharT>> args) -> vscan_result<Range>
9107
4.14M
{
9108
4.14M
#if !SCN_DISABLE_LOCALE
9109
4.14M
    auto buffer = detail::make_scan_buffer(range);
9110
9111
4.14M
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
9112
4.14M
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
9113
4.14M
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
9114
9115
4.14M
    if (SCN_UNLIKELY(!result)) {
9116
128k
        return unexpected(result.error());
9117
128k
    }
9118
4.01M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9119
#else
9120
    static_assert(dependent_false<Locale>::value,
9121
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
9122
9123
    return {};
9124
#endif
9125
4.14M
}
_ZN3scn2v46detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKcSA_EEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESI_NS1_22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEEERKT_OSE_NS3_17basic_string_viewIT1_NS3_11char_traitsISU_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESU_EEEE
Line
Count
Source
9107
243k
{
9108
243k
#if !SCN_DISABLE_LOCALE
9109
243k
    auto buffer = detail::make_scan_buffer(range);
9110
9111
243k
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
9112
243k
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
9113
243k
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
9114
9115
243k
    if (SCN_UNLIKELY(!result)) {
9116
28.6k
        return unexpected(result.error());
9117
28.6k
    }
9118
214k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9119
#else
9120
    static_assert(dependent_false<Locale>::value,
9121
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
9122
9123
    return {};
9124
#endif
9125
243k
}
_ZN3scn2v46detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS3_16__deque_iteratorIcPKcRSA_PKSB_lLl4096EEESF_EEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS1_22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEEERKT_OSJ_NS3_17basic_string_viewIT1_NS3_11char_traitsISZ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESZ_EEEE
Line
Count
Source
9107
145k
{
9108
145k
#if !SCN_DISABLE_LOCALE
9109
145k
    auto buffer = detail::make_scan_buffer(range);
9110
9111
145k
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
9112
145k
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
9113
145k
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
9114
9115
145k
    if (SCN_UNLIKELY(!result)) {
9116
14.3k
        return unexpected(result.error());
9117
14.3k
    }
9118
131k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9119
#else
9120
    static_assert(dependent_false<Locale>::value,
9121
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
9122
9123
    return {};
9124
#endif
9125
145k
}
_ZN3scn2v46detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeIPKwSA_EEwEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESI_NS1_22borrowed_tail_subrangeISE_Xsr6rangesE14borrowed_rangeISE_EEE4typeEE4typeEEERKT_OSE_NS3_17basic_string_viewIT1_NS3_11char_traitsISU_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESU_EEEE
Line
Count
Source
9107
2.50M
{
9108
2.50M
#if !SCN_DISABLE_LOCALE
9109
2.50M
    auto buffer = detail::make_scan_buffer(range);
9110
9111
2.50M
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
9112
2.50M
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
9113
2.50M
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
9114
9115
2.50M
    if (SCN_UNLIKELY(!result)) {
9116
57.2k
        return unexpected(result.error());
9117
57.2k
    }
9118
2.44M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9119
#else
9120
    static_assert(dependent_false<Locale>::value,
9121
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
9122
9123
    return {};
9124
#endif
9125
2.50M
}
_ZN3scn2v46detail23vscan_localized_genericINSt3__16localeENS0_6ranges6detail9subrange_8subrangeINS3_16__deque_iteratorIwPKwRSA_PKSB_lLl1024EEESF_EEwEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS1_22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEEERKT_OSJ_NS3_17basic_string_viewIT1_NS3_11char_traitsISZ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESZ_EEEE
Line
Count
Source
9107
1.25M
{
9108
1.25M
#if !SCN_DISABLE_LOCALE
9109
1.25M
    auto buffer = detail::make_scan_buffer(range);
9110
9111
1.25M
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
9112
1.25M
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
9113
1.25M
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
9114
9115
1.25M
    if (SCN_UNLIKELY(!result)) {
9116
28.6k
        return unexpected(result.error());
9117
28.6k
    }
9118
1.22M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9119
#else
9120
    static_assert(dependent_false<Locale>::value,
9121
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
9122
9123
    return {};
9124
#endif
9125
1.25M
}
9126
9127
template <typename Range, typename CharT>
9128
auto vscan_value_generic(Range&& range,
9129
                         basic_scan_arg<detail::default_context<CharT>> arg)
9130
    -> vscan_result<Range>
9131
2.02M
{
9132
2.02M
    auto buffer = detail::make_scan_buffer(range);
9133
9134
2.02M
    auto result = detail::vscan_value_impl(buffer, arg);
9135
2.02M
    if (SCN_UNLIKELY(!result)) {
9136
21.4k
        return unexpected(result.error());
9137
21.4k
    }
9138
2.00M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9139
2.02M
}
_ZN3scn2v46detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEcEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NS0_14basic_scan_argINS0_18basic_scan_contextINS1_16buffer_range_tagET0_EEEE
Line
Count
Source
9131
110k
{
9132
110k
    auto buffer = detail::make_scan_buffer(range);
9133
9134
110k
    auto result = detail::vscan_value_impl(buffer, arg);
9135
110k
    if (SCN_UNLIKELY(!result)) {
9136
4.77k
        return unexpected(result.error());
9137
4.77k
    }
9138
106k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9139
110k
}
_ZN3scn2v46detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEcEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS0_14basic_scan_argINS0_18basic_scan_contextINS1_16buffer_range_tagET0_EEEE
Line
Count
Source
9131
67.1k
{
9132
67.1k
    auto buffer = detail::make_scan_buffer(range);
9133
9134
67.1k
    auto result = detail::vscan_value_impl(buffer, arg);
9135
67.1k
    if (SCN_UNLIKELY(!result)) {
9136
2.38k
        return unexpected(result.error());
9137
2.38k
    }
9138
64.7k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9139
67.1k
}
_ZN3scn2v46detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEwEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NS0_14basic_scan_argINS0_18basic_scan_contextINS1_16buffer_range_tagET0_EEEE
Line
Count
Source
9131
1.23M
{
9132
1.23M
    auto buffer = detail::make_scan_buffer(range);
9133
9134
1.23M
    auto result = detail::vscan_value_impl(buffer, arg);
9135
1.23M
    if (SCN_UNLIKELY(!result)) {
9136
9.54k
        return unexpected(result.error());
9137
9.54k
    }
9138
1.22M
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9139
1.23M
}
_ZN3scn2v46detail19vscan_value_genericINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEwEENS0_13scan_expectedINS7_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS1_22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEEOSI_NS0_14basic_scan_argINS0_18basic_scan_contextINS1_16buffer_range_tagET0_EEEE
Line
Count
Source
9131
616k
{
9132
616k
    auto buffer = detail::make_scan_buffer(range);
9133
9134
616k
    auto result = detail::vscan_value_impl(buffer, arg);
9135
616k
    if (SCN_UNLIKELY(!result)) {
9136
4.77k
        return unexpected(result.error());
9137
4.77k
    }
9138
611k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9139
616k
}
9140
}  // namespace detail
9141
9142
SCN_GCC_PUSH
9143
SCN_GCC_IGNORE("-Wnoexcept")
9144
9145
/**
9146
 * Perform actual scanning from `source`, according to `format`, into the
9147
 * type-erased arguments at `args`. Called by `scan`.
9148
 *
9149
 * \ingroup vscan
9150
 */
9151
template <typename Source>
9152
auto vscan(Source&& source, std::string_view format, scan_args args)
9153
    -> vscan_result<Source>
9154
388k
{
9155
388k
    return detail::vscan_generic(SCN_FWD(source), format, args);
9156
388k
}
_ZN3scn2v45vscanINS0_6ranges6detail9subrange_8subrangeIPKcS7_EEEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEEOSC_NSA_17basic_string_viewIcNSA_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextINSH_16buffer_range_tagEcEEEE
Line
Count
Source
9154
243k
{
9155
243k
    return detail::vscan_generic(SCN_FWD(source), format, args);
9156
243k
}
_ZN3scn2v45vscanINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEEENS0_13scan_expectedINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEEEOSH_NS6_17basic_string_viewIcNS6_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextINSM_16buffer_range_tagEcEEEE
Line
Count
Source
9154
145k
{
9155
145k
    return detail::vscan_generic(SCN_FWD(source), format, args);
9156
145k
}
Unexecuted instantiation: _ZN3scn2v45vscanINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEEEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESJ_NS6_22borrowed_tail_subrangeISF_Xsr6rangesE14borrowed_rangeISF_EEE4typeEE4typeEEEOSF_NSD_17basic_string_viewIcNSD_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS6_16buffer_range_tagEcEEEE
Unexecuted instantiation: _ZN3scn2v45vscanIRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEENS0_13scan_expectedINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEEOSC_NS2_17basic_string_viewIcS5_EENS0_15basic_scan_argsINS0_18basic_scan_contextINSH_16buffer_range_tagEcEEEE
9157
9158
/**
9159
 * Perform actual scanning from `source`, according to `format`, into the
9160
 * type-erased arguments at `args`, using `loc`, if requested. Called by
9161
 * `scan`.
9162
 *
9163
 * \ingroup locale
9164
 */
9165
template <typename Source,
9166
          typename Locale,
9167
          typename = std::void_t<decltype(Locale::classic())>>
9168
auto vscan(const Locale& loc,
9169
           Source&& source,
9170
           std::string_view format,
9171
           scan_args args) -> vscan_result<Source>
9172
388k
{
9173
388k
    return detail::vscan_localized_generic(loc, SCN_FWD(source), format, args);
9174
388k
}
_ZN3scn2v45vscanINS0_6ranges6detail9subrange_8subrangeIPKcS7_EENSt3__16localeEvEENS0_13scan_expectedINS9_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEERKT0_OSD_NS9_17basic_string_viewIcNS9_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextINSI_16buffer_range_tagEcEEEE
Line
Count
Source
9172
243k
{
9173
243k
    return detail::vscan_localized_generic(loc, SCN_FWD(source), format, args);
9174
243k
}
_ZN3scn2v45vscanINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EENS6_6localeEvEENS0_13scan_expectedINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEEERKT0_OSI_NS6_17basic_string_viewIcNS6_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextINSN_16buffer_range_tagEcEEEE
Line
Count
Source
9172
145k
{
9173
145k
    return detail::vscan_localized_generic(loc, SCN_FWD(source), format, args);
9174
145k
}
9175
9176
/**
9177
 * Perform actual scanning from `source` into the type-erased argument at
9178
 * `arg`. Called by `scan_value`.
9179
 *
9180
 * \ingroup vscan
9181
 */
9182
template <typename Source>
9183
auto vscan_value(Source&& source, basic_scan_arg<scan_context> arg)
9184
    -> vscan_result<Source>
9185
178k
{
9186
178k
    return detail::vscan_value_generic(SCN_FWD(source), arg);
9187
178k
}
_ZN3scn2v411vscan_valueINS0_6ranges6detail9subrange_8subrangeIPKcS7_EEEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEEOSC_NS0_14basic_scan_argINS0_18basic_scan_contextINSH_16buffer_range_tagEcEEEE
Line
Count
Source
9185
110k
{
9186
110k
    return detail::vscan_value_generic(SCN_FWD(source), arg);
9187
110k
}
_ZN3scn2v411vscan_valueINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS8_PKS9_lLl4096EEESD_EEEENS0_13scan_expectedINS6_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEEEOSH_NS0_14basic_scan_argINS0_18basic_scan_contextINSM_16buffer_range_tagEcEEEE
Line
Count
Source
9185
67.1k
{
9186
67.1k
    return detail::vscan_value_generic(SCN_FWD(source), arg);
9187
67.1k
}
9188
9189
/**
9190
 * Perform actual scanning from `stdin`, according to `format`, into the
9191
 * type-erased arguments at `args`. Called by `input`.
9192
 *
9193
 * \ingroup vscan
9194
 */
9195
scan_expected<void> vinput(std::string_view format, scan_args args);
9196
9197
namespace detail {
9198
template <typename T>
9199
auto scan_int_impl(std::string_view source, T& value, int base)
9200
    -> scan_expected<std::string_view::iterator>;
9201
9202
template <typename T>
9203
auto scan_int_exhaustive_valid_impl(std::string_view source) -> T;
9204
9205
#if !SCN_DISABLE_TYPE_SCHAR
9206
extern template auto scan_int_impl(std::string_view source,
9207
                                   signed char& value,
9208
                                   int base)
9209
    -> scan_expected<std::string_view::iterator>;
9210
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9211
    -> signed char;
9212
#endif
9213
#if !SCN_DISABLE_TYPE_SHORT
9214
extern template auto scan_int_impl(std::string_view source,
9215
                                   short& value,
9216
                                   int base)
9217
    -> scan_expected<std::string_view::iterator>;
9218
extern template auto scan_int_exhaustive_valid_impl(std::string_view) -> short;
9219
#endif
9220
#if !SCN_DISABLE_TYPE_INT
9221
extern template auto scan_int_impl(std::string_view source,
9222
                                   int& value,
9223
                                   int base)
9224
    -> scan_expected<std::string_view::iterator>;
9225
extern template auto scan_int_exhaustive_valid_impl(std::string_view) -> int;
9226
#endif
9227
#if !SCN_DISABLE_TYPE_LONG
9228
extern template auto scan_int_impl(std::string_view source,
9229
                                   long& value,
9230
                                   int base)
9231
    -> scan_expected<std::string_view::iterator>;
9232
extern template auto scan_int_exhaustive_valid_impl(std::string_view) -> long;
9233
#endif
9234
#if !SCN_DISABLE_TYPE_LONG_LONG
9235
extern template auto scan_int_impl(std::string_view source,
9236
                                   long long& value,
9237
                                   int base)
9238
    -> scan_expected<std::string_view::iterator>;
9239
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9240
    -> long long;
9241
#endif
9242
#if !SCN_DISABLE_TYPE_UCHAR
9243
extern template auto scan_int_impl(std::string_view source,
9244
                                   unsigned char& value,
9245
                                   int base)
9246
    -> scan_expected<std::string_view::iterator>;
9247
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9248
    -> unsigned char;
9249
#endif
9250
#if !SCN_DISABLE_TYPE_USHORT
9251
extern template auto scan_int_impl(std::string_view source,
9252
                                   unsigned short& value,
9253
                                   int base)
9254
    -> scan_expected<std::string_view::iterator>;
9255
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9256
    -> unsigned short;
9257
#endif
9258
#if !SCN_DISABLE_TYPE_UINT
9259
extern template auto scan_int_impl(std::string_view source,
9260
                                   unsigned int& value,
9261
                                   int base)
9262
    -> scan_expected<std::string_view::iterator>;
9263
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9264
    -> unsigned int;
9265
#endif
9266
#if !SCN_DISABLE_TYPE_ULONG
9267
extern template auto scan_int_impl(std::string_view source,
9268
                                   unsigned long& value,
9269
                                   int base)
9270
    -> scan_expected<std::string_view::iterator>;
9271
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9272
    -> unsigned long;
9273
#endif
9274
#if !SCN_DISABLE_TYPE_ULONG_LONG
9275
extern template auto scan_int_impl(std::string_view source,
9276
                                   unsigned long long& value,
9277
                                   int base)
9278
    -> scan_expected<std::string_view::iterator>;
9279
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9280
    -> unsigned long long;
9281
#endif
9282
9283
}  // namespace detail
9284
9285
SCN_GCC_POP  // -Wnoexcept
9286
9287
    // dummy namespace to reset formatting
9288
    namespace detail
9289
{
9290
}
9291
9292
/////////////////////////////////////////////////////////////////
9293
// scan
9294
/////////////////////////////////////////////////////////////////
9295
9296
/**
9297
 * The return type of `scan`, based on the type of the source, and the
9298
 * types of the scanned arguments.
9299
 */
9300
template <typename Source, typename... Args>
9301
using scan_result_type =
9302
    scan_expected<scan_result<detail::scan_result_value_type<Source>, Args...>>;
9303
9304
/**
9305
 * If `in` contains a successful result as returned from `vscan`,
9306
 * the range contained in `out` is set to `*in`.
9307
 * Otherwise, `unexpected(in.error())` is stored in `out`.
9308
 */
9309
template <typename Result,
9310
          typename Range,
9311
          std::enable_if_t<std::conjunction_v<
9312
              detail::is_specialization_of<Result, scan_result>,
9313
              std::is_same<typename Result::range_type, Range>>>* = nullptr>
9314
void fill_scan_result(scan_expected<Result>& out, scan_expected<Range>&& in)
9315
10.3M
{
9316
10.3M
    if (SCN_UNLIKELY(!in)) {
9317
279k
        out = unexpected(in.error());
9318
279k
    }
9319
10.0M
    else {
9320
10.0M
        out->set_range(SCN_MOVE(*in));
9321
10.0M
    }
9322
10.3M
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEES9_TnPNSA_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSA_7is_sameINSL_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISL_EEONSX_ISR_EE
Line
Count
Source
9315
298k
{
9316
298k
    if (SCN_UNLIKELY(!in)) {
9317
31.0k
        out = unexpected(in.error());
9318
31.0k
    }
9319
267k
    else {
9320
267k
        out->set_range(SCN_MOVE(*in));
9321
267k
    }
9322
298k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__117basic_string_viewIcNSA_11char_traitsIcEEEEEEES9_TnPNSA_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSA_7is_sameINSJ_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISJ_EEONSV_ISP_EE
Line
Count
Source
9315
298k
{
9316
298k
    if (SCN_UNLIKELY(!in)) {
9317
31.0k
        out = unexpected(in.error());
9318
31.0k
    }
9319
267k
    else {
9320
267k
        out->set_range(SCN_MOVE(*in));
9321
267k
    }
9322
298k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIcPKcRS9_PKSA_lLl4096EEESE_EEJNS7_12basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEEEESF_TnPNS7_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENS7_7is_sameINSQ_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISQ_EEONS12_ISW_EE
Line
Count
Source
9315
357k
{
9316
357k
    if (SCN_UNLIKELY(!in)) {
9317
31.0k
        out = unexpected(in.error());
9318
31.0k
    }
9319
326k
    else {
9320
326k
        out->set_range(SCN_MOVE(*in));
9321
326k
    }
9322
357k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIwNSA_11char_traitsIwEENSA_9allocatorIwEEEEEEES9_TnPNSA_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSA_7is_sameINSL_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISL_EEONSX_ISR_EE
Line
Count
Source
9315
3.12M
{
9316
3.12M
    if (SCN_UNLIKELY(!in)) {
9317
62.0k
        out = unexpected(in.error());
9318
62.0k
    }
9319
3.05M
    else {
9320
3.05M
        out->set_range(SCN_MOVE(*in));
9321
3.05M
    }
9322
3.12M
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__117basic_string_viewIwNSA_11char_traitsIwEEEEEEES9_TnPNSA_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSA_7is_sameINSJ_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISJ_EEONSV_ISP_EE
Line
Count
Source
9315
3.12M
{
9316
3.12M
    if (SCN_UNLIKELY(!in)) {
9317
62.0k
        out = unexpected(in.error());
9318
62.0k
    }
9319
3.05M
    else {
9320
3.05M
        out->set_range(SCN_MOVE(*in));
9321
3.05M
    }
9322
3.12M
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__116__deque_iteratorIwPKwRS9_PKSA_lLl1024EEESE_EEJNS7_12basic_stringIwNS7_11char_traitsIwEENS7_9allocatorIwEEEEEEESF_TnPNS7_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENS7_7is_sameINSQ_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISQ_EEONS12_ISW_EE
Line
Count
Source
9315
3.12M
{
9316
3.12M
    if (SCN_UNLIKELY(!in)) {
9317
62.0k
        out = unexpected(in.error());
9318
62.0k
    }
9319
3.05M
    else {
9320
3.05M
        out->set_range(SCN_MOVE(*in));
9321
3.05M
    }
9322
3.12M
}
Unexecuted instantiation: _ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEESC_TnPNSD_9enable_ifIXsr3stdE13conjunction_vINS7_25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSD_7is_sameINSN_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISN_EEONSZ_IST_EE
Unexecuted instantiation: _ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEESA_EEJdEEESB_TnPNS7_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENS7_7is_sameINSG_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISG_EEONSS_ISM_EE
Unexecuted instantiation: _ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEESC_TnPNSD_9enable_ifIXsr3stdE13conjunction_vINS7_25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSD_7is_sameINSN_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISN_EEONSZ_IST_EE
Unexecuted instantiation: _ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEES9_TnPNSA_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSA_7is_sameINSL_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISL_EEONSX_ISR_EE
9323
9324
/**
9325
 * Returns an empty result type for a source of type `Source`, and arguments of
9326
 * type `Args...`.
9327
 */
9328
template <typename Source, typename... Args>
9329
auto make_scan_result()
9330
10.3M
{
9331
10.3M
    return scan_result_type<Source, Args...>();
9332
10.3M
}
auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
9330
298k
{
9331
298k
    return scan_result_type<Source, Args...>();
9332
298k
}
auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Line
Count
Source
9330
298k
{
9331
298k
    return scan_result_type<Source, Args...>();
9332
298k
}
auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l>, std::__1::__deque_iterator<char, char const*, char const&, char const* const*, long, 4096l> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
9330
357k
{
9331
357k
    return scan_result_type<Source, Args...>();
9332
357k
}
auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Line
Count
Source
9330
3.12M
{
9331
3.12M
    return scan_result_type<Source, Args...>();
9332
3.12M
}
auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Line
Count
Source
9330
3.12M
{
9331
3.12M
    return scan_result_type<Source, Args...>();
9332
3.12M
}
auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l>, std::__1::__deque_iterator<wchar_t, wchar_t const*, wchar_t const&, wchar_t const* const*, long, 1024l> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Line
Count
Source
9330
3.12M
{
9331
3.12M
    return scan_result_type<Source, Args...>();
9332
3.12M
}
Unexecuted instantiation: auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: auto scn::v4::make_scan_result<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, double>()
Unexecuted instantiation: auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
9333
9334
template <typename Source, typename... Args>
9335
auto make_scan_result(std::tuple<Args...>&& initial_values)
9336
{
9337
    using type = scan_result_type<Source, Args...>;
9338
    using subrange_type = typename type::value_type::range_type;
9339
    return type{std::in_place, subrange_type{}, SCN_MOVE(initial_values)};
9340
}
9341
9342
/**
9343
 * \defgroup scan Basic scanning API
9344
 *
9345
 * \brief The core public-facing interface of the library
9346
 *
9347
 * The following functions use a format string syntax similar to that of
9348
 * `std::format`. See more at \ref format-string.
9349
 *
9350
 * When these functions take a `source` as input, it must
9351
 * model the `scannable_source` concept. See more at \ref scannable.
9352
 */
9353
9354
/**
9355
 * Scans `Args...` from `source`, according to the
9356
 * specifications given in the format string (`format`).
9357
 * Returns the resulting values in an object of type `scan_result`,
9358
 * alongside a `subrange` pointing to the unused input.
9359
 *
9360
 * Example:
9361
 * \code{.cpp}
9362
 * if (auto result = scn::scan<int>("123", "{}"))
9363
 *     int value = result->value();
9364
 * \endcode
9365
 *
9366
 * \ingroup scan
9367
 */
9368
template <typename... Args,
9369
          typename Source,
9370
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>>
9371
SCN_NODISCARD auto scan(Source&& source,
9372
                        scan_format_string<Source, Args...> format)
9373
    -> scan_result_type<Source, Args...>
9374
388k
{
9375
388k
    auto result = make_scan_result<Source, Args...>();
9376
388k
    fill_scan_result(result, vscan(SCN_FWD(source), format,
9377
388k
                                   make_scan_args(result->values())));
9378
388k
    return result;
9379
388k
}
_ZN3scn2v44scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS0_6ranges6detail9subrange_8subrangeIPKcSE_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEEOSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS10_ISU_E4typeEEEE
Line
Count
Source
9374
121k
{
9375
121k
    auto result = make_scan_result<Source, Args...>();
9376
121k
    fill_scan_result(result, vscan(SCN_FWD(source), format,
9377
121k
                                   make_scan_args(result->values())));
9378
121k
    return result;
9379
121k
}
_ZN3scn2v44scanIJNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEENS0_6ranges6detail9subrange_8subrangeIPKcSC_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEJDpT_EEEEEOSH_NS0_24basic_scan_format_stringIcNSM_13type_identityISH_E4typeEJDpNSY_ISS_E4typeEEEE
Line
Count
Source
9374
121k
{
9375
121k
    auto result = make_scan_result<Source, Args...>();
9376
121k
    fill_scan_result(result, vscan(SCN_FWD(source), format,
9377
121k
                                   make_scan_args(result->values())));
9378
121k
    return result;
9379
121k
}
_ZN3scn2v44scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRSE_PKSF_lLl4096EEESJ_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESS_NS0_6detail22borrowed_tail_subrangeISO_Xsr6rangesE14borrowed_rangeISO_EEE4typeEE4typeEJDpT_EEEEEOSO_NS0_24basic_scan_format_stringIcNST_13type_identityISO_E4typeEJDpNS15_ISZ_E4typeEEEE
Line
Count
Source
9374
145k
{
9375
145k
    auto result = make_scan_result<Source, Args...>();
9376
145k
    fill_scan_result(result, vscan(SCN_FWD(source), format,
9377
145k
                                   make_scan_args(result->values())));
9378
145k
    return result;
9379
145k
}
Unexecuted instantiation: _ZN3scn2v44scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS9_18default_sentinel_tEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESQ_NSD_22borrowed_tail_subrangeISM_Xsr6rangesE14borrowed_rangeISM_EEE4typeEE4typeEJDpT_EEEEEOSM_NS0_24basic_scan_format_stringIcNSD_13type_identityISM_E4typeEJDpNS12_ISW_E4typeEEEE
Unexecuted instantiation: _ZN3scn2v44scanIJdERNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
9380
9381
/**
9382
 * `scan` with explicitly supplied default values
9383
 *
9384
 * Can be used, for example, for pre-allocating a scanned string:
9385
 *
9386
 * \code{.cpp}
9387
 * std::string str;
9388
 * str.reserve(64);
9389
 *
9390
 * // As long as the read string fits in `str`,
9391
 * // does not allocate
9392
 * auto result = scn::scan<std::string>(source, "{}",
9393
 *                                      {std::move(str)});
9394
 * // Access the read string with result->value()
9395
 * \endcode
9396
 *
9397
 * \ingroup scan
9398
 */
9399
template <typename... Args,
9400
          typename Source,
9401
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>>
9402
SCN_NODISCARD auto scan(Source&& source,
9403
                        scan_format_string<Source, Args...> format,
9404
                        std::tuple<Args...>&& initial_args)
9405
    -> scan_result_type<Source, Args...>
9406
{
9407
    auto result = make_scan_result<Source>(SCN_MOVE(initial_args));
9408
    fill_scan_result(result, vscan(SCN_FWD(source), format,
9409
                                   make_scan_args(result->values())));
9410
    return result;
9411
}
9412
9413
/**
9414
 * \defgroup locale Localization
9415
 *
9416
 * \brief Scanning APIs that allow passing in a locale
9417
 */
9418
9419
/**
9420
 * `scan` using an explicit locale.
9421
 *
9422
 * Has no effect on its own, locale-specific scanning still needs to be
9423
 * opted-into on an argument-by-argument basis, with the `L` format string
9424
 * specifier.
9425
 *
9426
 * \code{.cpp}
9427
 * auto result = scn::scan<double>(
9428
 *     std::locale{"fi_FI.UTF-8"}, "3,14, "{:L}");
9429
 * // result->value() == 3.14
9430
 * \endcode
9431
 *
9432
 * \ingroup locale
9433
 */
9434
template <typename... Args,
9435
          typename Locale,
9436
          typename Source,
9437
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>,
9438
          typename = std::void_t<decltype(Locale::classic())>>
9439
SCN_NODISCARD auto scan(const Locale& loc,
9440
                        Source&& source,
9441
                        scan_format_string<Source, Args...> format)
9442
    -> scan_result_type<Source, Args...>
9443
388k
{
9444
388k
    auto result = make_scan_result<Source, Args...>();
9445
388k
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
9446
388k
                                   make_scan_args(result->values())));
9447
388k
    return result;
9448
388k
}
_ZN3scn2v44scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS2_6localeENS0_6ranges6detail9subrange_8subrangeIPKcSF_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESO_NS0_6detail22borrowed_tail_subrangeISK_Xsr6rangesE14borrowed_rangeISK_EEE4typeEE4typeEJDpT_EEEEERKT0_OSK_NS0_24basic_scan_format_stringIcNSP_13type_identityISK_E4typeEJDpNS14_ISV_E4typeEEEE
Line
Count
Source
9443
121k
{
9444
121k
    auto result = make_scan_result<Source, Args...>();
9445
121k
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
9446
121k
                                   make_scan_args(result->values())));
9447
121k
    return result;
9448
121k
}
_ZN3scn2v44scanIJNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEENS2_6localeENS0_6ranges6detail9subrange_8subrangeIPKcSD_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESM_NS0_6detail22borrowed_tail_subrangeISI_Xsr6rangesE14borrowed_rangeISI_EEE4typeEE4typeEJDpT_EEEEERKT0_OSI_NS0_24basic_scan_format_stringIcNSN_13type_identityISI_E4typeEJDpNS12_IST_E4typeEEEE
Line
Count
Source
9443
121k
{
9444
121k
    auto result = make_scan_result<Source, Args...>();
9445
121k
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
9446
121k
                                   make_scan_args(result->values())));
9447
121k
    return result;
9448
121k
}
_ZN3scn2v44scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS2_6localeENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRSF_PKSG_lLl4096EEESK_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEEST_NS0_6detail22borrowed_tail_subrangeISP_Xsr6rangesE14borrowed_rangeISP_EEE4typeEE4typeEJDpT_EEEEERKT0_OSP_NS0_24basic_scan_format_stringIcNSU_13type_identityISP_E4typeEJDpNS19_IS10_E4typeEEEE
Line
Count
Source
9443
145k
{
9444
145k
    auto result = make_scan_result<Source, Args...>();
9445
145k
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
9446
145k
                                   make_scan_args(result->values())));
9447
145k
    return result;
9448
145k
}
9449
9450
/**
9451
 * `scan` with a locale and default values
9452
 *
9453
 * \ingroup locale
9454
 */
9455
template <typename... Args,
9456
          typename Locale,
9457
          typename Source,
9458
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>,
9459
          typename = std::void_t<decltype(Locale::classic())>>
9460
SCN_NODISCARD auto scan(const Locale& loc,
9461
                        Source&& source,
9462
                        scan_format_string<Source, Args...> format,
9463
                        std::tuple<Args...>&& initial_args)
9464
    -> scan_result_type<Source, Args...>
9465
{
9466
    auto result = make_scan_result<Source>(SCN_MOVE(initial_args));
9467
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
9468
                                   make_scan_args(result->values())));
9469
    return result;
9470
}
9471
9472
/**
9473
 * `scan` a single value, with default options.
9474
 *
9475
 * Essentially equivalent to: `scn::scan<T>(source, "{}")`,
9476
 * except it can skip parsing the format string, gaining performance.
9477
 *
9478
 * \ingroup scan
9479
 */
9480
template <typename T,
9481
          typename Source,
9482
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>>
9483
SCN_NODISCARD auto scan_value(Source&& source) -> scan_result_type<Source, T>
9484
178k
{
9485
178k
    auto result = make_scan_result<Source, T>();
9486
178k
    fill_scan_result(
9487
178k
        result, vscan_value(SCN_FWD(source),
9488
178k
                            detail::make_arg<scan_context>(result->value())));
9489
178k
    return result;
9490
178k
}
_ZN3scn2v410scan_valueINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS0_6ranges6detail9subrange_8subrangeIPKcSE_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJT_EEEEEOSJ_
Line
Count
Source
9484
55.4k
{
9485
55.4k
    auto result = make_scan_result<Source, T>();
9486
55.4k
    fill_scan_result(
9487
55.4k
        result, vscan_value(SCN_FWD(source),
9488
55.4k
                            detail::make_arg<scan_context>(result->value())));
9489
55.4k
    return result;
9490
55.4k
}
_ZN3scn2v410scan_valueINSt3__117basic_string_viewIcNS2_11char_traitsIcEEEENS0_6ranges6detail9subrange_8subrangeIPKcSC_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEJT_EEEEEOSH_
Line
Count
Source
9484
55.4k
{
9485
55.4k
    auto result = make_scan_result<Source, T>();
9486
55.4k
    fill_scan_result(
9487
55.4k
        result, vscan_value(SCN_FWD(source),
9488
55.4k
                            detail::make_arg<scan_context>(result->value())));
9489
55.4k
    return result;
9490
55.4k
}
_ZN3scn2v410scan_valueINSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEENS0_6ranges6detail9subrange_8subrangeINS2_16__deque_iteratorIcPKcRSE_PKSF_lLl4096EEESJ_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESS_NS0_6detail22borrowed_tail_subrangeISO_Xsr6rangesE14borrowed_rangeISO_EEE4typeEE4typeEJT_EEEEEOSO_
Line
Count
Source
9484
67.1k
{
9485
67.1k
    auto result = make_scan_result<Source, T>();
9486
67.1k
    fill_scan_result(
9487
67.1k
        result, vscan_value(SCN_FWD(source),
9488
67.1k
                            detail::make_arg<scan_context>(result->value())));
9489
67.1k
    return result;
9490
67.1k
}
9491
9492
/**
9493
 * `scan` a single value, with default options, and a default value.
9494
 *
9495
 * \ingroup scan
9496
 */
9497
template <typename T,
9498
          typename Source,
9499
          std::enable_if_t<detail::is_file_or_narrow_range<Source>>* = nullptr>
9500
SCN_NODISCARD auto scan_value(Source&& source, T initial_value)
9501
    -> scan_result_type<Source, T>
9502
{
9503
    auto result =
9504
        make_scan_result<Source>(std::tuple<T>{SCN_MOVE(initial_value)});
9505
    fill_scan_result(
9506
        result, vscan_value(SCN_FWD(source),
9507
                            detail::make_arg<scan_context>(result->value())));
9508
    return result;
9509
}
9510
9511
/**
9512
 * Scan from `stdin`.
9513
 *
9514
 * Equivalent to `scn::scan<...>(stdin, ...)`.
9515
 *
9516
 * \code{.cpp}
9517
 * auto result = scn::input<int>("{}");
9518
 * \endcode
9519
 *
9520
 * \ingroup scan
9521
 */
9522
template <typename... Args>
9523
SCN_NODISCARD auto input(scan_format_string<std::FILE*, Args...> format)
9524
    -> scan_result_type<std::FILE*, Args...>
9525
{
9526
    auto result = scan_result_type<std::FILE*, Args...>(std::in_place, stdin,
9527
                                                        std::tuple<Args...>{});
9528
    auto err = vinput(format, make_scan_args(result->values()));
9529
    if (SCN_UNLIKELY(!err)) {
9530
        result = unexpected(err.error());
9531
    }
9532
    return result;
9533
}
9534
9535
/**
9536
 * Write msg to stdout, and call `input<Args...>(format)`
9537
 *
9538
 * \ingroup scan
9539
 */
9540
template <typename... Args>
9541
SCN_NODISCARD auto prompt(const char* msg,
9542
                          scan_format_string<std::FILE*, Args...> format)
9543
    -> scan_result_type<std::FILE*, Args...>
9544
{
9545
    std::printf("%s", msg);
9546
    std::fflush(stdout);
9547
    return input<Args...>(format);
9548
}
9549
9550
namespace detail {
9551
template <typename T>
9552
inline constexpr bool is_scan_int_type =
9553
    std::is_integral_v<T> && !std::is_same_v<T, char> &&
9554
    !std::is_same_v<T, wchar_t> && !std::is_same_v<T, char32_t> &&
9555
    !std::is_same_v<T, bool>;
9556
}
9557
9558
/**
9559
 * Fast integer reading.
9560
 *
9561
 * Quickly reads an integer from a `std::string_view`. Skips preceding
9562
 * whitespace.
9563
 *
9564
 * Reads in the specified base,
9565
 * allowing a base prefix. Set `base` to `0` to detect the base from the
9566
 * input. `base` must either be `0`, or in range `[2, 36]`.
9567
 *
9568
 * \ingroup scan
9569
 */
9570
template <typename T, std::enable_if_t<detail::is_scan_int_type<T>>* = nullptr>
9571
SCN_NODISCARD auto scan_int(std::string_view source, int base = 10)
9572
    -> scan_result_type<std::string_view, T>
9573
{
9574
    auto result = scan_result_type<std::string_view, T>();
9575
    if (auto r = detail::scan_int_impl(source, result->value(), base);
9576
        SCN_LIKELY(r)) {
9577
        result->set_range(ranges::subrange{*r, source.end()});
9578
    }
9579
    else {
9580
        result = unexpected(r.error());
9581
    }
9582
    return result;
9583
}
9584
9585
namespace detail {
9586
template <bool Val, typename T>
9587
inline constexpr bool dependent_bool = Val;
9588
}
9589
9590
/**
9591
 * Very fast integer reading.
9592
 *
9593
 * Quickly reads an integer from a `std::string_view`.
9594
 *
9595
 * Be very careful when using this one!
9596
 * Its speed comes from some very heavy assumptions about the validity of
9597
 * the input:
9598
 *  - `source` must not be empty.
9599
 *  - `source` contains nothing but the integer: no leading or trailing
9600
 *    whitespace, no extra junk. Leading `-` is allowed for signed types,
9601
 *    no `+` is allowed.
9602
 *  - The parsed value does not overflow.
9603
 *  - The input is a valid base-10 integer.
9604
 * Breaking these assumptions will lead to UB.
9605
 *
9606
 * \ingroup scan
9607
 */
9608
template <typename T, std::enable_if_t<detail::is_scan_int_type<T>>* = nullptr>
9609
SCN_NODISCARD auto scan_int_exhaustive_valid(std::string_view source) -> T
9610
{
9611
    static_assert(
9612
        detail::dependent_bool<!SCN_IS_BIG_ENDIAN, T>,
9613
        "scan_int_exhaustive_valid requires a little endian environment");
9614
    return detail::scan_int_exhaustive_valid_impl<T>(source);
9615
}
9616
9617
SCN_END_NAMESPACE
9618
}  // namespace scn